如果每次绘制一帧时我的 X 坐标都会增加,我可以从数学库中使用什么公式来让 Y 坐标一帧一帧地围绕圆的圆周移动,从而产生轨道物体的错觉围绕一个不断移动的中心点?
我已经看到它可能涉及 sin 或 cos,但不确定如何在每帧中相应地调整变量。
非常感谢您的帮助
如果每次绘制一帧时我的 X 坐标都会增加,我可以从数学库中使用什么公式来让 Y 坐标一帧一帧地围绕圆的圆周移动,从而产生轨道物体的错觉围绕一个不断移动的中心点?
我已经看到它可能涉及 sin 或 cos,但不确定如何在每帧中相应地调整变量。
非常感谢您的帮助
如果你的 X 坐标每次都增加,你就不能做一个完整的圆,因为你的 X 坐标有一半的时间必须减少。
你想要的是极坐标:角度的theta和半径的r。您的 r 将保持不变,而您的 theta 将不断增加。那么你的 x 和 y 是:
x = r * cos(theta)
y = r * sin(theta)
让ox,oy
成为你的圆的原点,并px,py
成为圆边缘上的一个点,半径为r
给定:(px-ox)^2 + (py-oy)^2 = r^2
圆的定义
解决py:
(py-oy)^2 = r^2 - (px-ox)^2
(py-oy) = sqrt(r^2 - (px-ox)^2)
py = sqrt(r^2 - (px-ox)^2) + oy
<---
因此,px
随着帧数的增加,您可以py
通过重新计算上述公式来找到合适的值。