沿NURBS曲线重复的点

时间:2018-07-09 19:10:39

标签: c++ 3d nurbs

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

是否有解决此问题的常用方法?

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

2 个答案:

答案 0 :(得分:0)

好像您想在NURBS曲线上的任何给定点上找到局部坐标系。在这种情况下,通常使用Frenet帧。有关更多详细信息,请参见此link

关于“给定控制点的切向量”的问题,由于控制点通常不位于NURBS曲线上,因此它没有切向量。如果由于某些特殊原因确实需要一个切线向量,可以在曲线上最接近控制点的点使用切向量。

答案 1 :(得分:0)