在NURBS曲线的分割中,答案依赖于“最大结多重性”。为了不混淆不同的主题,我想在另一个问题中回答:“结多重性”到底是什么?

#1 楼

当您有曲线时,可以调整结,使它们相互重叠。本质上有点像是几个控制点相互重叠,只是只有一个控制点。有时称为多重性或双重性。

彼此重叠的结点多于曲线平滑度,则最终会出现尖点,也称为尖角。一旦出现尖角,您就可以删除对侧的点,因为它们不再影响角的另一侧。



图像1:曲线和控制保持架(顶部)和基础函数(底部)。在这种情况下,该曲线充当2条相邻的贝塞尔曲线,图像使用的结矢量[0,0,0,0,1,1,1,1,2,2,2,2]。

如果我们看一个结向量,则多重性看起来像是具有相同数目的n个结的序列。请注意,如果您没有在顶部精确地添加多个节点,就没有一个平滑的节点,那么您会得到一个局部尖锐的角。



图像2:带有结点形式插值的动画[0,0,0,0,1,1,1,2,2,2,2]到[0,0,0,0,0.34,1,1.66,2,2,2,2]并返回。如果正确插入点,则曲线不会改变。只是谈论多重性。

或者,改变参数化,您可以在彼此之上添加点。这是等效的,尽管稍微滥用了资源,但在曲面建模中很有用。在顶部有许多控制点也可能对结分布的均匀性质很有用。

评论


$ \ begingroup $
当您说“结在彼此之上”时,您的意思是结的值在结向量中不会改变吗?因此,在您的示例[0,0,0,0],[1,1,1],[2,2,2]都“彼此重叠”吗?
$ \ endgroup $
– Ecir Hana
15年8月27日在12:33

$ \ begingroup $
@EcirHana是的,这是我的意思是更常规的参数设置为[0,0,0,0,0.5,1,1.5,2,2,2,2]
$ \ endgroup $
– joojaa
15年8月27日在12:45

$ \ begingroup $
仅需检查:因此要分割NURBS曲线,主要任务是插入打结,以使整体形状保持不变,对吗?
$ \ endgroup $
– Ecir Hana
15年8月27日在13:28

$ \ begingroup $
是的,一旦结数足够多,就可以删除另一边的内容。
$ \ endgroup $
– joojaa
15年8月27日在13:31

$ \ begingroup $
还有一种不同的策略,您可以插入一个结并删除不再影响该结的点,但是您会得到稍微不同的参数。对于我自己的大多数建模,我都喜欢这种方法。但是似乎没人听说过这一点。
$ \ endgroup $
– joojaa
15年8月27日在13:34