在使用Swing做界面时,有时为了效果更绚丽或者能提供更好的用户体验
我们通常希望一些变化,尤其是位置的变化能以一种平滑过渡的方法呈现出来
算法思想很简单,就是差值法,在起点和终点之间计算很多冗余位置,间隔时间分别经过各个位置,最终在到达终点
我写的算法是等时间间隔,步长逐渐变短的过程
步长变化趋势采用 f(x)=1/x 函数来模拟,在减少复杂度的情况下能很好的保证效果
当然下面的代码是阻塞的,必须在线程中运行才能显示出动画效果
c 表示想要移动的组件, p2 表示目的坐标 ( 起始坐标是当前位置 )
可以改的地方有
32,表示移动次数
12,表示每次移动延时
public static void smoothMove(Component c, Point p2) {
try {
int i = 0;
Point p1 = c.getLocation();
float da;
while (i++ < 32) {
da = 1f / i - 1f / 32;
c.setLocation((int) (p2.x + (p1.x - p2.x) * da + 0.5), (int) (p2.y + (p1.y - p2.y) * da + 0.5));
c.getParent().repaint();
Thread.currentThread();
Thread.sleep(12);
}
} catch (Exception e) {
}
}
分享到:
相关推荐
在编程领域,特别是针对中文编程环境,易语言(E Language)是一种非常受欢迎的编程语言,它以简体中文为语法,降低了编程的门槛,让更多的人能够接触和学习编程。本主题聚焦于“易语言组件左右移动”,这涉及到窗口...
易语言是一种专为中国人设计的编程语言,它的目标是让编程变得简单易学。这个"易语言鼠标平滑移动源码.zip"文件包含了一个使用易语言编写的程序,该程序实现了鼠标指针的平滑移动功能。对于初学者或者想要深入理解...
易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语法,降低了编程的门槛,使得更多非计算机专业背景的人也能轻松学习编程。在本压缩包“易语言鼠标平滑移动源码.7z”中,包含的是用易语言编写的实现...
双缓冲技术是另一种有效手段,它涉及到图形控件和显示内存的管理。在双缓冲中,我们首先在后台缓冲区绘制整个场景,包括移动的图像,然后一次性将后台缓冲区的内容复制到前台缓冲区(即屏幕)。这种方法避免了部分...
在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将详细讲解如何使用Flex创建一个图片缩放移动组件,以及涉及的相关知识点。 首先,我们要理解...
易语言是一种专为中国人设计的、简单易学的编程语言,它的目标是让不懂英文的用户也能方便地进行计算机编程。动态绘制平滑曲线在图形界面编程中是一项重要的技术,通常用于数据可视化、游戏开发或者艺术创作等领域。...
Cocos Creator的相机系统提供了一种更高级的方式来控制场景的视图,包括视角、缩放和移动等。在本案例中,我们将重点讨论如何使用相机来实现背景的差速移动。 首先,我们需要创建一个相机对象。在Cocos Creator中,...
《displaceable:轻量级高性能的JavaScript库——实现鼠标移动元素平滑移动的魔法》 在现代网页设计中,动态交互元素已经成为提升用户体验的重要手段。"displaceable"作为一个小巧而高性能的JavaScript库,正是为此...
此外,Transform.position 还可以结合 Vector3.Lerp 或 SmoothDamp 实现平滑移动。Vector3.SmoothDamp 方法能够提供更加平滑的过渡,同时还可以控制速度和阻尼,常用于相机跟随效果: ```csharp Vector3 smoothPos ...
- **Vector3.Lerp, Vector3.Slerp, Vector3.MoveTowards**: 这些方法常用于平滑地在两点间移动物体,Lerp 适用于直线运动,Slerp 适用于保持角度的球形插值,MoveTowards 可以限制物体的最大速度,适用于模拟物理...
在这个项目“react-native-bouncing-ball-master”中,我们看到的是一个利用React Native创建的动态气泡球组件,这个组件能够使气泡在屏幕上以随机的速度移动,从而提供一种有趣且动态的视觉效果。 首先,我们要...
本文将深入探讨标题所提及的"一种手写输入法的笔迹平滑处理方法及手写输入法",并基于描述和标签来解析这一主题的相关知识点。 首先,手写输入法允许用户通过直接书写来输入文本,极大地提高了输入效率和用户体验,...
综上所述,Unity3D中实现角色从一个点移动到另一个点涉及了Transform组件的使用、选择合适的移动控制方式(Rigidbody或CharacterController)、使用线性插值平滑移动、处理碰撞和路径规划,以及结合动画系统和用户...
在IT行业中,曲线平滑是一种常见的数据处理技术,特别是在图形绘制和数据分析领域。本文将深入探讨如何使用C++编程语言,结合Visual Studio 2017和QT 5.12.3库来实现曲线平滑功能。QT库提供了一套强大的QChart组件,...
其次,**环绕视角**是一种允许玩家围绕特定物体或角色旋转查看的机制,常用于展示细节或者环境。在Unity中,可以通过改变Camera的位置和朝向来实现。`围绕物体旋转的摄像机完美版.unitypackage`可能包含了这样的实现...
滚轮设计允许消毒装置在地面平滑移动,而飞行驱动器则让消毒装置具备空中消毒的能力。 此外,消毒装置还配备了净化组件,用于进一步净化空气。监测组件环绕消毒装置,当检测到障碍物时,通过处理器控制移动组件避开...
标题中的“一种界面图标移动控制方法和装置”指的是在人机交互领域中,关于图形用户界面(GUI)设计的一种创新技术。这种技术着重于优化用户的交互体验,特别是针对图标的操作,如拖放、滑动等,以提升操作效率和...
本文将深入探讨一种基于移动中间件的交互界面动态更新方法,该方法适用于电信设备,旨在优化服务性能,提高系统灵活性,并确保用户界面始终保持最新状态。 首先,我们需要理解移动中间件的概念。移动中间件是一种...
综上所述,ardvibes卡片组件结合了JavaScript的交互性和CSS的视觉表现力,提供了一种高质量的网页设计解决方案。开发者可以通过深入研究这个组件,学习并应用其中的技术,提升自己的前端开发技能。