我刚刚开始学习有关 Graphics2D 类的基础知识,到目前为止,我能够绘制不同的对象并实现 ActionListener
以通过 onKeyPress
在屏幕上实际移动它们。到目前为止一切顺利,虽然我想做一些更复杂的事情。我想为我的对象提供一个路径,并仅在该特定路径上对其进行动画处理。
比如,我会在天空中画一条线,飞机应该沿着那条画好的线飞行,并保持自己沿着那条特定的线飞行。现在有可能吗?
我不需要任何类型的代码,但很少有不同的方法或想法能让我开始着手处理这个问题。我的想法的可视化阐述如下。
起点:
终点:
现在如上所示,我的黄色框(在未来的平面中)应该在动画时坚持给定的路径(路径灰线)
我目前的研究,
我在 java 中搜索了诸如路径之类的流行词,找到了 Path2D
和 GeneralPath
类,有谁知道我是否可以用它来解决这个问题。
谢谢
最佳答案
太棒了!
它让我想起了我在 IT 领域的第一步。我是多么喜欢所有这些简单的数学东西,但它让东西在屏幕上移动。 :)
你需要的其实是一个线性插值。还有其他类型的插值,一些 api 为概念提供了很好的封装,但这里是主要思想,你会经常需要这些东西:
你必须重写你的路径
y = f (x )
作为时间的函数:
在时间 0 项目将在开始位置,在时间 1 它将到达结束位置。然后根据需要增加时间 (t)(例如每毫秒增加 0.001)。
所以这是一个简单的线性路径的公式:
x = xstart + (xend-xstart) * t
y = ystart + (yend-ystart) * t
当 t 变化时,你的物体只会沿着路径线性移动,线性地有速度在所有路径上都是恒定的。例如,您可以想象在末端存在某种引力吸引力,这将通过二次加速度(t^2 而不是 t)来建模 ...
问候, 斯蒂芬
关于java - 如何在 Graphics2D 上下文中为 Path2D 对象上的矩形设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207931/