2017-12-02 377 views
1

我目前正在围绕赛道移动不同的赛车。我使用改变物体运动速度的公式

Canvas move object in circle

ARCCOS列出的式(1-(d ⁄ R) ⁄ 2)以改变所述汽车的速度绕跑道的端部和它工作得很好。我不明白的是公式是如何派生的。我一直在努力从arcsin或arccos的二阶导数中推导出它,但我无法脱离公式(所以我猜测我走错路了)。无论如何,我不习惯使用我不明白的代码,所以如果有人能为我揭示一些代码,我将不胜感激。

+0

你看到这个例子中,在这里你可以用这些参数和值播放/ ..以获得更好的理解: http://jsfiddle.net/m1erickson/Qnk5d/ – Lonely

+0

这纯粹是一个数学问题,与编程无关;如果你不明白该链接文章中答案的推导,那么你应该问[Math SE网站](https://math.stackexchange.com)。 – meowgoesthedog

+0

你怎么使用这个公式?为了什么? – MBo

回答

1

如链接问题中详细描述的,物体沿着一个圆的运动可以用单个角度来参数化,其以松散的术语描述了物体已经做了多少“转动”。现在的问题是对于哪个角度theta目的是在从最初的(当前)位置的欧几里得距离d

enter image description here

换言之,如果您修正模拟的时间步长delta,所述问题可以重申,应该如何调整(增加)角度,以便物体在时间间隔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) 
+0

谢谢@ewcz,当我阅读代码时,我认为距离在弧AC上,而不是和弦。感谢您的图表和推导,它非常清楚。 – GameQuest