非均匀有理B样条(NURBS)基础


9

我试图理解NURBS曲线(稍后再说!),但是在理解其内部工作原理时遇到了一些麻烦。有人可以向我解释几件事吗?正如我从贝塞尔曲线得出的那样,将两者进行比较特别有用。

  1. “理性的基础功能”的样子(理性)贝塞尔曲线的伯恩斯坦多项式一点点。参数是否u也从0变为1?

  2. 如何“添加细节”到曲线?我的意思是,如果我需要描述一个更复杂的形状,那么我将简单地将多个Beziers“缝合”在一起。或较少地,增加程度。我知道我也可以增加NURBS的度数,并排放置多个NURBS曲线,但是这应该怎么做?

  3. 至少对我来说,维基百科的文章对这种“结矢量”似乎不太清楚。到底是什么


对于一个问题,这有点太多了。基本上,我可以在几个小时内完成关于该主题的入门讲座。稍微详细介绍De casteljanu的使用和de boor的算法将花费我太多时间。
joojaa 2015年

1
因此,我想将问题3、5和可能的6分解为单独的问题,以使答案和理解的饮食量更多。
joojaa 2015年

@joojaa当然,我可以分割问题,只需

1
所以,问题356分别分离出来分离的问题。
Ecir Hana 2015年

Answers:


7

B样条曲线和贝塞尔曲线或多或少是同一事物的平行发明。Beziers尝试从拟合切线的想法开始的地方。B样条线从基函数的概念开始。NURB样条曲线(或实际上的有理部分)只是B样条曲线的概括,因此您可以描述准确的圆锥截面*,因为它们在工程中特别有用。

首先,让我们从简单的NURB Spline术语开始。这些曲线的原理与贝塞尔曲线有所不同。首先是跨度的概念。跨度大致等于整个Bezier样条曲线,只是在nurbs中可以有任意多个跨度。

在此处输入图片说明

图1:一立方NURBS跨度。这在配方上有点不典型

每个跨度由曲线度+ 1个控制点**组成。每条曲线可以包含任意数量的点。每个连续的跨度通过在列表中删除一个点并再增加一个点来重用先前跨度中的点。因此,制作更复杂的曲线就像将更多点附加到曲线一样容易。

注意:图像曲线有些非典型地参数化,将在下一节中解释这的含义。当我采取打结的概念。这只是解释曲线如何粘合在一起的简便方法。

在此处输入图片说明

图像2:彼此相继2立方跨度,每个跨度使用4个点。它们一起形成一条曲线。他们彼此分享大多数分数。

到目前为止,我们可能已经回答了有关增加复杂性的两个问题。但我想补充一点,该方案比贝塞尔曲线能确保更好的连续性。另外,您可以使形成船体的点阵列循环。形成闭合曲线。

在此处输入图片说明

图片3:封闭的立方NURBS曲面的跨度与点数一样多。每种颜色是一个跨度。

参数化

直到这一点,人们才可以说将跨度串在一起是一种技巧,就像“缝制”贝塞尔曲线一样。但是有区别。曲线沿其长度参数化。因此,曲线不是分开的,它们不会像Beziers那样在每个跨度上以0到1的形式插值。相反,基础曲线具有可定制的参数范围。参数存储在称为“结”的位置,每个结在序列中可以具有任意递增的值。因此,您可以参数化整个曲线u的范围为0-1或0到12。参数化也不必是统一的。

此参数化会更改曲线的形状。为什么这会有用?好吧,您可以沿曲线调整张力一。或者,您可以将曲线的长度编码为U参数。一种特殊用途是使NURBS曲线完全或仅部分地像Bezier曲线一样工作(例如,bezier像两端一样,而不像中间那样)。

在此处输入图片说明

图片4:相同点的不同结序列。绿色的NURBS曲线对应于参数范围为0-2(而不是0-1)的Bezier曲线

好,那是什么结?它们只是基础函数的范围。由于具有4个点的三次b样条具有4个插值函数,因此需要8节。只能绘制3个功能重叠且总和不超过1.0的区域。

在此处输入图片说明

图像5:2个不同的基函数,像bezier一样,并且段参数统一,扩展到0-1范围。

现在,我们主要描述了问题1的答案。未定义范围,您可以根据需要扩展基础函数。最后,结向量仅产生基函数的参数范围。还有另一件事决定着曲线的形状,那就是权重向量。但这是另一个故事。


*在这种情况下,这种有理数意味着NURBS曲线不必是多项式,因为您不能用多项式描述一个圆。

**可以定义其他类型的点。


关于(*),贝塞尔曲线也有同样的问题。问题在于,曲线(在两种情况下)都定义为x = f(t),y = f(t)。但是,您也可以使用x代替t将单变量/显式/一维曲线(同样在两种情况下)定义为y = f(x)。如果是有理曲线,则可以表示正弦和余弦(当然还有更多),而不是能够表示圆锥截面。NURBS / b样条曲线在这方面并不特殊。
艾伦·沃尔夫

我认为您关于长度的陈述是错误的(仅适用于线性函数吗?),并且不确定长度计算应如何适合您的解释(您给出的好信息,只是说一声!)
艾伦·沃尔夫

@AlanWolfe还是删除了
joojaa 2015年

最厉害!非常感谢,很好的解释!
Ecir Hana

错别字?“相反,下表面具有可自定义的参数范围。参数存储在称为结的对象中,每个结可以具有大于下一个的任意值。” ->“相反,基础曲线具有可自定义的参数范围。该参数存储在称为结的对象中,每个结可以具有比上一个更大的任意值。” 顺便说一句,能否请您解释“紫外线范围”的含义?“ UV”表示2D ..?
Ecir Hana 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.