如何在Graphics2D上下文中的Path2D对象上设置Rectangle的动画
我刚刚开始学习有关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)来建模……
此致,Stephane
首先,使能力从a点移动到b点。 这是通过简单的代数完成的。
其次,能够走一条路并将其转化为点。 然后,当你要做曲线时,你真的只是沿着那条曲线从一点到另一点移动。
这是最基本的方法,适用于大多数情况。
你所说的是简单的2D图形和精灵。 如果这就是你所需要的,那么对Java来说,看看Java 2D Sprites如果你更倾向于使用相机视角,并希望从不同的角度观看动画,那么请使用OpenSource Java 3D.org中的 Java 3D。 无论哪种方式你想要的是沿着一条线简单地翻译对象,在2D或3D中非常简单。
您可以尝试通过我的开源大学项目 – LANSim的代码 。 它的代码在代码菜单中可用。 它与您尝试的类似。