javascript - 物体圆周运动速度变化公式

标签 javascript geometry linear-algebra

我目前正在赛道上移动不同的汽车。我正在使用

中列出的公式

Canvas move object in circle

arccos (1- ( d ⁄ r ) 2 ⁄ 2 )

改变赛道两端赛车的速度,效果很好。我不明白的是公式是如何推导出来的。我一直在尝试从 arcsin 或 arccos 的二阶导数中推导出它,但我无法得出公式(所以我猜我走错了路)。无论如何,我从来都不愿意使用我不理解的代码,所以如果有人能为我提供一些帮助,我将不胜感激。

最佳答案

如链接问题中所述,物体沿圆的运动可以用单个 Angular theta 进行参数化,用松散的术语描述物体已经进行了多少次“旋转”。现在,问题是对象与初始(当前)位置 A 的欧几里德距离 d 的 Angular theta:

enter image description here

换句话说,如果您固定模拟的时间步长 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/

相关文章:

javascript - 在表单上设置小数值并不总是有效 - Dynamics CRM 2013

mysql - 如何绘制 mysql 多边形圆,而不是正方形?

ios - 如何只用笔画画圆

python - 高斯混合模型 - 奇异矩阵

javascript - 如何在 Google Chart 中显示 PHP 数组

javascript - 无法使用 Javascript 在 Safari 中检索图像宽度,但在 Chrome 中工作正常

javascript - 如何合并数组中的重复对象值然后输出列表?

c++ - 使用 OpenCV 绘制虚线/虚线圆

javascript - JavaScript 的线性代数库?

c++ - 在 C++/Eigen 中求解线性方程