gpt4 book ai didi

java - 在路径上移动对象(圆圈)

转载 作者:行者123 更新时间:2023-12-04 05:34:20 30 4
gpt4 key购买 nike

我需要移动一个对象,在我的例子中是给定路径上的一个字符串。实际上路径可以是半圆。如附图所示,字符串应该出现在另一个物体的后面,沿着路径移动并消失在第二个物体(两个图像)后面。我不知道如何开始...希望有人可以帮助我。提前致谢。

enter image description here

最佳答案

新建 Thread这将处理文本移动的逻辑。在其 run()方法添加一个循环,该循环将在每次迭代时更改文本位置。此外,更改文本位置后,您必须调用 repaint()在定义 paint() 的组件上或 paintComponent()你已经覆盖了。

每次迭代后,线程应该 hibernate 一小段时间。 sleep 50 毫秒意味着您大约每秒将获得大约 20 帧。

现在是数学。假设您知道一个点是圆的中心(位于 2 个图像之间的中间点下方的某个位置)和文本的起点。有了这个,您可以将圆半径计算为两点之间的距离:

d = Math.sqrt((c.x - p.x) * (c.x - p.x) + (c.y - p.y) * (c.y - p.y))

为了让文字在圆上保持移动,上面的距离需要保持不变。因此,您可以做的是将 x 增加一个常数值并计算文本的新 y。
d = Math.sqrt((c.x - p.x) * (c.x - p.x) + (c.y - p.y) * (c.y - p.y))

在上面的公式中,您知道值 d, c.x, c.y, p.x (您刚刚计算并增加了它)。您只需要 p.y 的值,即:
p.y = c.y - Math.sqrt(d * d - ((c.x - p.x) * (c.x - p.x))

关于java - 在路径上移动对象(圆圈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155335/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com