我目前正在赛道上移动不同的汽车。我正在使用
中列出的公式arccos (1- ( d ⁄ r ) 2 ⁄ 2 )
改变赛道两端赛车的速度,效果很好。我不明白的是公式是如何推导出来的。我一直在尝试从 arcsin 或 arccos 的二阶导数中推导出它,但我无法得出公式(所以我猜我走错了路)。无论如何,我从来都不愿意使用我不理解的代码,所以如果有人能为我提供一些帮助,我将不胜感激。
最佳答案
如链接问题中所述,物体沿圆的运动可以用单个 Angular theta
进行参数化,用松散的术语描述物体已经进行了多少次“旋转”。现在,问题是对象与初始(当前)位置 A 的欧几里德距离 d
的 Angular theta
:
换句话说,如果您固定模拟的时间步长 delta
,那么问题可以重述为应该如何调整(增加) Angular ,以便对象在时间间隔内发生位移delta
到距离 d
。
来自law of cosines , 一个得到:
d^2 = r^2 + r^2 - 2*r*r*cos(theta) = 2*r^2*(1 - cos(theta))
因此:
cos(theta) = 1 - 1/2*(d/r)^2
theta = arccos(1 - 1/2*(d/r)^2)
关于javascript - 物体圆周运动速度变化公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611856/