java - 动画从一个点到另一个点绘制的线

标签 java swing animation javafx

您好,我在解决一个问题时遇到了问题,我需要解决这个问题才能继续我正在做的项目。我想为一条从 JPanel 的角到由用户输入的角度确定的面板边框上的任意点设置动画。

很多与此类似的帖子推荐 Swing 计时器增加一条线的 x2、y2,但我的问题是我不知道要绘制的线,因为它由我将拥有的功能决定写考虑到角度(斜率)。

假设它恰好是 30 度...我不能只增加 x2 和 y2 因为我不知道以像素为单位的上升和运行是什么来动画正确的角度线....

是否有任何函数可以帮助解决这个问题,也许在数学或其他方面......我也在研究 javafx.animation

我想我不是在寻找一个解决方案,只是为了指向正确的方向 谢谢

编辑
来自另一篇文章:
嗨,我正在尝试做一个项目,该项目基本上显示了台球穿过台球 table 的路径。我了解底层三角函数,但我没有使用 Java 制作动画的经验。

现在我有一个用作台球 table 的 JPanel。球总是从某一点开始。

我知道如何使用 paint() 来“绘制”线条,但如何轻松地为其设置动画。

我的直觉是通过使用带有 Swing 计时器的循环来为球的路径设置动画(基本上是为一条不断增长的线设置动画),这会导致每次通过时产生延迟,并在每次通过循环时绘制线的下一个像素。我的问题是如何引用这些像素值。例如,如果线是水平或垂直的,您可以只增加 y2 或 x2 值并在每次通过时重新绘制线,但是如果线的斜率能够改变,我知道如何获得线的端点,但是每个线上的 Activity 像素坐标。我可以“绘制”一个线对象并以某种方式引用它路径中的每个像素吗?我已经对 PathIterator() 进行了一些研究,但我不相信我走在正确的轨道上(或者我更担心我没有走在最简单、更高级别的轨道上)。

有没有更简单的方法来做到这一点,或者我至少是在正确的轨道上?我正在自己研究,但我很担心,因为这是学校的一个软件工程项目,而动画方面确实阻碍了我们的团队。

最佳答案

一旦您弄清楚了三角函数,请查看Math 类。 methods包括计算顶部顶点所需像素高度所需的常用 sin、cos、tan 方法。但请注意,这些方法以弧度为单位获取角度,因此在使用它们时有必要将它们从度数转换为弧度。 Math.PI将对此有所帮助。

关于java - 动画从一个点到另一个点绘制的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159291/

相关文章:

java - 使用像素 int[] 创建 BufferedImage

java - 使用 AsyncTask 在主 Activity 的单独类中获取控件

java - 即使在 java 上执行 setOpaque(true) 之后 setBackground 也不会工作

java - 标签设置范围延迟(以秒为单位)

python - 如何对从二维直方图派生的图像进行动画处理

javascript - GSAP 时间线动画

java - 从 HashMap 中删除列表中未列出的字符串

java - 如何在eclipse中查找类路径中的文件

java - 在 java swings 中切换/导航 jpanels

html - 动画 SVG 还是 Canvas?