java - 对两个 Point 对象之间的线进行动画处理

标签 java animation

以某种方式在两个 Point 对象之间绘制一条线的最简单方法是什么 看起来就像我正在用手实时绘制那条线?

例如:

Point a = new Point(5,20);
Point b = new Point(15,20);

如何用“移动”线连接这些点?

换句话说,我想让用户感受到某种“运动”。有没有简单的方法可以做到这一点?

最佳答案

给定两个点,您可以确定连接它们的线的方程。直线方程的形式为 y = mx + c,其中 m 是斜率,c 是 y 截距。

因此,给定两个点 (5,20) 和 (15,20),我们首先确定 m。

m = (y2-y1)/(x2-x1)
  = (20-20)/(15-5)
  = (0)/10
  = 0

代入直线方程,我们得到y = 0x + cy = c。现在我们知道了这一点,我们只需要知道 y = c 和 5<=x<=15 的点。只需以正常方式绘制每个点(查看 this 了解确切的方法),并在绘制每个点之间调用 Thread.sleep() 即可。在这种情况下,您只有 11 个点要绘制,因此每 100 毫秒绘制 1 个点是有意义的。有关 Thread.sleep() 的详细信息,请参阅 here .

编辑:由于 Thread.sleep() 在 EDT 上不起作用,请查看 javax.swing.Timer相反,正如 Uhlen 建议的那样。

关于java - 对两个 Point 对象之间的线进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010097/

相关文章:

java - Tomcat 6.0.24 Exception : javax. servlet.ServletException: Servlet 执行抛出异常

java - 如何以更高的像素密度显示我的 Java (Swing GUI) 应用程序?

java - 如何在java中更新文本文件的某些部分

swift - 在按钮操作中访问 Tableview 单元格

android - 动画后 TranslateAnimated ImageView 不可点击 [Android]

android - 如何制作结束学分页面 - 动画 TableLayout 而不会在显示尺寸处被切割

java - 仅当我使用 jlink 组装应用程序后运行应用程序时,Flyway 才无法在类路径中找到迁移

java - 为什么这个语句不能正常工作?三元运算 & classcastexception

javascript - 在窗口调整大小时停止/重新启动动画循环

jquery - CSS3 动画填充模式 polyfill