以某种方式在两个 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 + c
或y = 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/