1. 什么是回旋线
在计算机图形学和数学中,回旋线是一种特殊的曲线,它以一种螺旋状的方式向外扩展或向内收缩。回旋线可以通过极坐标方程或参数方程来描述,常见的回旋线包括阿基米德螺线和对数螺线。在计算机图形学中,回旋线常常用于创建艺术效果或动画效果。
2. 特性
kappa 连续
3. 回旋线的参数
typedef struct rbp_Tag_tpcClothoid_st
{
rbp_Type_Point_st End_st; /** Clothoid end point [1/2^10 m] */
SInt16 Phi_s16; /** Clothoid end point tangent angle [1/2^12 rad] */
UInt16 Kappa_u16; /** curvature in end point (= curvature of clothoid circle) [1/2^15 m] */
UInt16 LengthF10_u16; /** clothoid length [1/2^10 m] */
SInt16 Xm_s16; /** clothoid circle center [1/2^10 m] */
SInt16 Ym_s16; /** clothoid circle center [1/2^10 m]. The "Tangentenabrueckung" can be easily calculated: deltaR = Ym - clothoid inner circle radius. The "extended circle radius" is: Rext = sqrt(X_m^2 + Y_m^2). Since these values are not always needed, they should be calculated on demand. */
} rbp_Type_tpcClothoid_st;
4. 计算原理
-
回旋线的所有参数的计算按照下面的步骤进行
- 获取回旋线结束点出圆半径的曲率: k = 1/R
- 计算回旋线的长度:L_clo = K * A2
- 计算回旋线的End point信息
- 计算回旋线内圆心坐标
-
End point 的计算:
- 计算EndPoint处的切角:𝑝𝑠𝑖=𝐿22∗𝐴2。切角的范围在(0~0.5rad,对应0到28.65°)
- 如果A<2.7或L_clo<2m,使用近似方法来计算End point的位置(X,Y)。(因为误差分析表明,如果如果A<2.7或L_clo<2m则对于回旋线的所有点,近似值都精确到0.5mm, 比LUP更精确)计算方法:
- EPX≈ L*(1-β^2/10)
- EPY≈ L*(β/3)
- 否则根据终点的切角β来查表并进行线性插值
- 计算EndPoint处的切角:𝑝𝑠𝑖=𝐿22∗𝐴2。切角的范围在(0~0.5rad,对应0到28.65°)
-
计算回旋线内圆心坐标:
Mpx = Endpoint_x - R*sinβ
Mpy = Endpoint_y + R*cosβ
5. Detail 解释
- 回旋曲线的本质特征:
𝑑𝑘𝑑𝑙 = ±1𝐴2
即曲率k随弧长l线性变化