计算线段组成的curve/arc的半径(近似值)

Calculate radius of curve/arc formed by line segments (approximate)

该计算是针对游戏的,因此近似值优于计算密集型正确计算。我需要找到的是给定弧的半径。

在这种情况下,"curve" 可以被认为是弧线,因为这种近似已经足够好了。所以情况是这样的:

我知道:

  1. 绿线的长度(相等)
  2. 蓝色弧的长度
  3. α 的度数

我需要知道的:

背景 - 实际上我需要两件事的半径:

  1. 计算圆弧 B 的长度,距中心圆弧的偏移量为 x。因此 B 的 r 将是 r + x
  2. 计算在该弯道上行驶的车辆的离心力

我尝试了什么:

如果我有圆周和圆弧的内角,我知道如何计算半径。但是我完全坚持给定的信息,虽然我确信它不应该太复杂..

如果你认为一个直角三角形在绿线的中间,另一个点在圆的中心,那么那个三角形中绿色线段的交点的角度是α/2,余弦该角度的比率是

cos(α/2)*r = g/2

g 绿色段的长度。


饼图顶部的角度是 π-α,因此蓝色曲线段的长度 b 应该是

b = (π-α)*r 

从两个公式中得到的半径值的差异不应超过预期的测量误差。

或者,您可以使用 Catmull-Rom (https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline), Hermite (https://en.wikipedia.org/wiki/Cubic_Hermite_spline), or natural (https://en.wikipedia.org/wiki/Spline_interpolation) 三次样条插值来计算点之间的路径。

这将为您提供 (x,y) 坐标的三次多项式,并且很容易对其进行二阶导数来获得加速度的方向和大小。