如何在Graphics2D上下文中的Path2D对象上设置Rectangle的动画

我刚刚开始学习有关Graphics2D类的基础知识,到目前为止,我能够绘制不同的对象并实现ActionListener以便通过onKeyPress在屏幕上实际移动它们。 到目前为止一切都那么好,虽然我想做一些更复杂的事情。 我想给出一个我的对象的路径 ,并仅在该特定路径上制作动画。

有点像,我会在天空画一条线,一架飞机应该坚持画线并保持自己在那条特定线上飞行。 现在有可能吗?

我不需要任何类型的代码,但是很少有不同的方法或想法可以让我开始研究这个问题。 我想法的可视化阐述如下。

起点 :

在此处输入图像描述

终点:

在此处输入图像描述

现在如上图所示,我的黄色框(在未来的平面中)应该在动画时保持给定的路径(路径灰线)

我到目前为止的研究,

我搜索了我的流行语,比如java中的路径,找到了Path2DGeneralPath类,有谁知道我是否可以用它来解决这个问题。

谢谢

好极了!

它让我想起了我在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的代码 。 它的代码在代码菜单中可用。 它与您尝试的类似。