我刚刚开始学习 Graphics2D 类的基础知识,到目前为止我能够绘制不同的对象和工具ActionListener
实际上在屏幕上移动它们onKeyPress
。到目前为止一切顺利,虽然我想做一些更复杂的事情。我想给一个path到我的对象并仅在该特定路径上为其设置动画。
比如,我会在天空上画一条线,飞机应该沿着这条线飞行,并保持在这条特定的线上飞行。现在可以吗?
我不需要任何类型的代码,但是很少有不同的方法或想法可以让我开始处理这个问题。我的想法的可视化阐述如下。
起点 :
终点:
现在如上所示,我的黄色框(在未来的平面中)应该在动画时坚持给定的路径(路径灰线)
到目前为止我的研究,
我搜索了我的流行词,例如 java 中的路径,发现Path2D
and GeneralPath
类,有谁知道我是否可以用它来解决这个问题。
Thanks
Great !
这让我想起了我踏入 IT 行业的第一步。我多么喜欢这些简单的数学知识,但它们却能让事情在屏幕上移动。 :)
您需要的实际上是线性插值。还有其他类型的插值,一些 api 为这个概念提供了很好的封装,但这里是主要思想,你经常需要这些东西:
你必须重写你的路径
y = f (x )
作为时间的函数:
在时间 0 时,项目将位于开始位置,在时间 1 时,项目将到达结束位置。然后根据需要增加时间 (t)(例如每毫秒 0.001)。
这是简单线性路径的公式:
x = xstart + (xend-xstart) * t
y = ystart + (yend-ystart) * t
当 t 变化时,物体只会沿着路径线性移动,线性速度在所有路径上都是恒定的。例如,您可以想象末端存在某种重力吸引力,这将通过二次加速度(t^2 而不是 t)来建模......
问候,
史蒂芬
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)