在 python 中使用 nurbs / geomdl 在 3D b 样条曲线上找到一个点的曲率中心

Find the center of Curvature of a point on 3D b-spline using nurbs / geomdl in python

我又一次不知所措,请多多包涵。

我有一个 B 样条曲线(从 Solidworks 导入),我可以在 python.
中使用 geomdl 进行分析 从 geomdl 中,我可以提取样条上任何给定点的一阶和二阶导数以及切线、法线和副法线向量。

从那里我可以根据一阶和二阶导数计算该点的曲率。

但是我无法确定曲线转向的方向。

我想在 bspline 上找到位于当前兴趣点曲率中心的点。

I 'think' 切向量和法向量都位于感兴趣的密切平面上。然后,叉积会给我贴近平面的法线。但是我做不到。

至少我需要知道曲线向哪个方向弯曲。即 CW 或 CCW。

但是如果我知道曲率中心的点,我就会知道关于那个点的几乎所有信息。

这是正确的吗?

重述问题:

给定一个点,曲线在该点的导数,以及切线、法线和双法线向量,如何找到曲率中心?

给定参数曲线 C(t) 以及一阶和二阶导数 C'(t) 和 C"(t),可以找到曲率向量

K(t) = m1*C"(t) - m2*C'(t)

哪里

m1 = 1.0/||C'(t)||^2 and m2 = m1*m1 * C'(t) \dot C"(t). 

由K(t)求出曲率半径R(t)为

R(t) = K(t)/||K(t)||^2

然后曲率中心为C(t)+R(t)。