沿 NURBS 曲线的重复点

Duplicate points along NURBS curve

在我当前的项目中,我已经实现了 NURBS 曲线,并且在曲线的开头我有一些 3D 点,它们都位于点的法平面 (u = 0.0) 中。现在我想将这些点复制到曲线的其他位置(例如 u = 0.5)以创建某种挤出/扫描机制。我的理论方法是在点 0.0 处创建一个局部坐标系,并计算每个点相对于该系统的坐标。然后我可以在所需的点创建局部坐标系并将这些点放在那里。我的问题是,通过 NURBS 曲线的第一次推导,我可以获得切线,因此可以得到点/系统的法平面(局部 X 方向),但我不知道如何定位系统。我的第一个想法是取 NURBS 曲线的二阶导数并用它来计算系统的局部 Y 轴和 Z 轴,但二阶导数的结果似乎不适合这种方法。

有解决这个问题的通用方法吗?

作为一个附加问题,我想知道如何指定给定控制点的切线向量,例如第一个控制点的切线。目前我通过口述第二个控制点的位置来解决这个问题,这似乎不是很优雅。

看起来您想在 NURBS 曲线上的任何给定点找到局部坐标系。如果是这种情况,Frenet 框架是典型的选择。有关详细信息,请参阅此 link

至于"tangent vector of a given control point"的问题,由于控制点一般不在NURBS曲线上,所以它没有切向量。如果由于某些特殊原因确实需要一个,可以在曲线上最接近控制点的点处使用切向量。

我们使用这种方法解决了同样的问题:

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/Computation-of-rotation-minimizing-frames.pdf