java - 如何在 Graphics2D 上下文中为 Path2D 对象上的矩形设置动画

标签 java java-2d graphics2d

我刚刚开始学习有关 Graphics2D 类的基础知识,到目前为止,我能够绘制不同的对象并实现 ActionListener 以通过 onKeyPress 在屏幕上实际移动它们。到目前为止一切顺利,虽然我想做一些更复杂的事情。我想为我的对象提供一个路径,并仅在该特定路径上对其进行动画处理。

比如,我会在天空中画一条线,飞机应该沿着那条画好的线飞行,并保持自己沿着那条特定的线飞行。现在有可能吗?

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

起点:

enter image description here

终点:

enter image description here

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

我目前的研究,

我在 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)来建模 ...

问候, 斯蒂芬

关于java - 如何在 Graphics2D 上下文中为 Path2D 对象上的矩形设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207931/

相关文章:

java - 绘制: Use floating point vs.整数的坐标?

Java AWT/Swing : paintComponent issue with custom JPanel(s)

java - JScrollPane 在 swing 中滚动后不显示内容

java - 爵士乐拼写检查将拼写正确的单词显示为拼写错误

java - 泛型类型的injector.getInstance

java - 球从鼠标拖动绘制的线上弹起

java - 如何缓慢移动图像?

Java:如何解压缩内存使用率较低的文件(zip或tar.gz)?

java - 需要 Spring 事务的帮助来进行巨大的日期操作

java - 在这种情况下 intersects() 会返回什么?