×

工业设计互动平台

手机短信,快捷登录

微信登录,快人一步

QQ登录

只需一步,快速开始

NURBS(非均匀有理贝式云型线) 基本规则

发布于 2008-3-4 1 点赞 28 评论 10675 浏览

NURBS是Non-Uniform Rational B-Splines(非均匀有理贝式云型线也有翻成"那不勒斯")的缩写。NURBS可以表现出3-D的几何物体。
NURBS之所以能够成为主要的计算机制作模形方法,有五个重要原因:

有许多大型的知名企业,都使用NURBS作为主要的几何模型交换方式。这代表了它们的客户,都可以使用这种方式来转换他们的几何模型,于各种不同的建构模型软件,算图软件,动画软件和工程分析软件之间。它们可以使用这样的方式存储几何模型数据,而且从现在起至少二十年内都可用。
NURBS拥有精确性和众所周知的定义。在各个大专院校里,无论在数学,计算机科学领域里,NURBS几何学都是必修的学问,是很重要的数学学科。这代表了大部分的计算机软件业者,工程小组,工业设计公司和动画公司;在需要撰写自行研法的软件时,都可以找到适当的程序设计师,来撰写使用以NURBS为主要几何架构的软件。
NURBS可以很精确的描绘出大部分的几何模型,如:线段,圆,椭圆,球体,环形和像车体和人体的复杂自由曲面模形。
在描绘几何模型时,以NURBS方式所描绘出的几何信息比其它的描绘方式,文件要小许多。
关于NURBS曲线的细节,以及为何是计算机绘图工具中最有效和准确性最高的原因,如下所列:

何谓NURBS几何学
这个问题有很多种回答的方式。如果你对于阅读数学方程式不感吃力的话,那你在RHINO的网站中相关连接可得到更多详细数据。

RHINO使用NURBS来呈现曲线和曲面。NURBS曲线和曲面的行为模式是很相近的,而且有很多共同的专有名称。曲线是较容易描述,理解的,我们将会详细说明。RHINO的曲面工具很类似我们接下来所提及的曲线工具:

一条NURBS曲线中有四个重要的定义项目:degree值,Control points控制点,knots节点和evaluation rule评定的规则。

degree 值
degree的值是一个正整数。
这个值通常为1,2,3或5。RHINO的线段和复合线段的degree的值为1。圆degree的值为2,而大部分RHINO的自由曲线的degree的值为3或5。RHINO所使用的NURBS曲线的degree的值可以设置从1到32。而通常我们把这些degree的值,称之为Linear,Quadratic, Cubic, Quintic。 Linear代表着degree的值为1,Quadratic代表着degree的值为2, Cubic代表着degree的值为3 ,Quintic代表着degree的值为5。

你可以参阅参考文献里关于NURBS曲线的order部分。NURBS曲线的order是个正整数,且等于degree+1。所以degree的

值等于order –1。
在改变NURBS曲线的degree的值的过程中,你有可能只增加degree的值而不影响到NURBS曲线的形状。但是,你无法在减小degree的值的过程中不影响到NURBS曲线的形状。RHINO所提供的工具能让你自由地设定NURBS曲线的degree的值,从1到32。

Control points 控制点
Control points最少是degree+1个点。
移动控制点,是改变NURBS曲线最简单的方法。RHINO提供了很多方法来移动控制点。如果需要有较大弹性的自由曲面,你可以只使用鼠标来快速的移动和改变控制点,以绘制你的模型。而相对于准确性要求较高的曲线,RHINO则提供了其它精确性高的工具,以供使用。
Control points有一个相关的值---Weight。除了少数例子外,weight的值通常是正数。Control points是一串至少是degree+1个点,此曲线状况称之为non-rational;而如果weight的值并不完全相同时,此曲线状况称之为rational。

NURBS曲线中的R为rational的缩写。但这只是代表这条曲线有可能是rational。在范例里,有大部分的NURBS曲线都是non-rational。只有一些NURBS曲线是rational,如:圆,椭圆等明显的案例。RHINO提供一些工具来检测和更改Control points的weight值。

knots节点
knots节点是一串degree+N-1的数字,其中N为Control points的数字编号。有时我称这串数字为knot vector。在这里的vector并不是指3-D向量或方向性。
这串节点数字必须符合一些技术上的条件。这里列出了几项符合knot技术上所需要的条件值。基本的条件为:这连串的数字必须相同,或顺序越后的数字越大,而且如果数字重复了,重复的次数不可以超过degree的值。例如一degree的值为3的NURBS曲线,其Control points的数量为11,而这串数字为0,0,0,1,2,2,2,3,7,7,9,9,9,符合knot数字符串的要求。但假如knot数字值为0,0,0,1,2,2,2,2,7,7,9,9,9,这就不符合技术上所需要的条件值了。因为有4 个2,已超出了degree的值3的数量。

相同的knot数字值的数量,我们称之为multiplicity.在上一个范例中,符合了knot技术上所需要的条件值,其knot值为0的有multiplicity 3,其knot值为1的有multiplicity 1,其knot值为2的有multiplicity 3,其knot值为7的有multiplicity 2,其knot值为9的有multiplicity 3。当knot的multiplicity值与其degree的值一样时,我们将之称为Full – multiplicity。在上一个范例中,knot的值为0,2,9,都是Full – multiplicity。当knot的multiplicity值为1时,我们将之称为Simple – multiplicity。在上一个范例中,knot的值为1,3,都是Simple – multiplicity。
假如一曲线其knot的值开始于Full – multiplicity,然后接着Simple – multiplicity,结尾又是Full –
multiplicity,而且其值之间的间隔相同,那这个knot称之为uniform。例如一NURBS曲线,其degree的值为3, Control points的数量为7,knot的值为0,0,0,1,2,3,4,4,4,那此曲线就可称之为uniform曲线。而假如knot的值为0,0,0,1,2,5,6,6,6,那此曲线就不是uniform曲线,我们称之为non-uniform。NURBS里的NU字母就是non-uniform的缩写。表示knots节点在NURBS曲线中是允许non-uniform的情形。

相同的knot数字值的数量,如果集中在值的中央部位,那这一NURBS曲线是较不圆滑的。例如有一曲线其knot值的中央有一Full – multiplicity,那就是表示此NURBS曲线会被弯成一锐角。因此,有些人会想要以增加或减少knots的数量,然后调整Control points使得曲线变得更加平顺或更锐利。RHINO提供了工具让你自由的增加或减少knots的数量。之前有提到过knots的值为degree+N-1,其N为Control points的值。所以当你增加knots的数量,同时也增加了Control points的数量;减少knots的数量,同时也减少了Control points的数量。knots的数量可以被增加,而不会影响到NURBS曲线的外形。而在一般情况下,减少数量会影响到NURBS曲线的外形。RHINO提供了一个减少knots的进阶工具,当你删除Control points时,它会自动调整knots的位置到最适当的位置。

Knots和control points
一般人常会误解,在NURBS曲线里的一个Control points会对应一个knot。而这种情况通常只会发生在degree的值为1的NURBS曲线上(通常是polylines)。在degree的值较高的NURBS曲线上,是由degree+1个Control points群组对应2倍degree值的knots群组。例如:假设我们有一个degree值为3的NURBS曲线,其Control points为7和knots为0,0,0,1,2,5,8,8,8。这时,前四个Control points和前六个knots为一组。而第二到第五个Control points和knots 0,0,1,2,5,8,为一组。而第三到第六个Control points和knots 0,1,2,5,8,8为一组。最后四个Control points和最后六个knots为一组。

现在还有些软件使用旧版本的NURBS转换法。旧版本的NURBS转换法在计算knots值时,须在总额为degree+N+1 knots再额外多加两个knots值。当RHINO在输入或输出NURBS几何数据到这些软件时,会自动地增加或减少两个多余的knots值以符合其正确性。

评定的规则
Evaluation rule评定的规则,是使用一个数学公式,得到一个数值用来定义到一点上。
这是一个包含degree, Control points,knots和B-spline函数的数学方程式。NURBS曲线中的BS就是指B-spline。评定的规则从一个称之为parameter的数字开始。你可以将评定的规则想象成一个神奇的箱子,而这个箱子每吃掉一个parameter值,就会运算出一个点的数据。而degree, Control points,和knots则决定了这个箱子如何运做的方法。

NURBS的评定工具

RHINO 提供评定工具,你可以选取一条NURBS曲线,键入parameter的值,从而产生其相对应点。观念上,knots的值决定了B-spline的基本函数。而B-spline的函数在parameter中决定了如何平均Control points和weights来产生点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩回复

文明上网理性发言、请文明用语

guoxu26 | 设计师 | 发表于 2008-3-31 11:19:35
看到第六行就晕倒了~~~
0 回复

举报

逝如水 | 体力透支 | 发表于 2008-4-9 12:01:19
我也晕了
0 回复

举报

seastar | 设计师 | 发表于 2008-6-8 14:12:27
确实很晕。咱要是数学好,就不是在艺术院校学习了[s:19]
0 回复

举报

flasher525 | 体力透支 | 发表于 2008-6-9 21:25:12
我看到第一行的括号就晕了。
0 回复

举报

guoguoman | 资深设计师 | 发表于 2009-2-27 10:30:00
太专业,要仔细推敲噢
0 回复

举报

jinskanna | 设计助理 | 发表于 2009-3-21 22:33:01
Copy完了慢慢看
0 回复

举报

sunsliu2009 | 设计助理 | 发表于 2009-4-2 16:08:09
对使用来说,有用吗?
0 回复

举报

wenfild | 设计助理 | 发表于 2009-5-18 07:54:07
看完更郁闷了   呵呵
0 回复

举报

zf19830303 | 设计助理 | 发表于 2009-6-18 12:59:14
0 回复

举报

ygjdouble | 实习生 | 发表于 2009-8-16 17:39:55
太晕了
0 回复

举报

pym | 设计师 | 发表于 2009-8-16 18:09:29
我实在看不懂
0 回复

举报

lie128 | 设计助理 | 发表于 2009-8-19 11:02:59
晕了。
。。。
0 回复

举报

soul100 | 实习生 | 发表于 2009-8-21 10:34:25
天文数字,晕了,额也是艺术类的,对额来说真的是~~~晕了[s:168]
0 回复

举报

ramoneshit | 体力透支 | 发表于 2009-8-21 11:07:58
真是好东西哦!
0 回复

举报

kai425 | 实习生 | 发表于 2009-8-29 00:43:37
[s:189]
0 回复

举报

城市贫民 | 设计助理 | 发表于 2009-8-29 22:15:13
看不懂
0 回复

举报

sumiaohou | 实习生 | 发表于 2009-9-10 21:53:40
多谢楼主分享!!!
0 回复

举报

zmp123456 | 实习生 | 发表于 2009-9-11 09:02:18
实在是没办法理解.自己的知识面太狭窄了
0 回复

举报

lizhuojian | 设计助理 | 发表于 2009-9-11 11:56:31
看不懂...真郁闷
0 回复

举报

oykv | 实习生 | 发表于 2009-9-15 10:25:30
看不懂
0 回复

举报

a523420042a | 实习生 | 发表于 2011-2-12 23:41:51
谢了
0 回复

举报

dongjinxian | 设计助理 | 发表于 2011-2-20 06:48:07
其实。。。。。我一打开页面就快晕了[s:189]
0 回复

举报

apriluu | 实习生 | 发表于 2012-1-12 22:04:27
非常有帮助!老师上课都没讲解这么清楚啊~~:)
0 回复

举报

蒋越恩 | 实习生 | 发表于 2014-3-1 12:28:15
在degree的值较高的NURBS曲线上,是由degree+1个Control points群组对应2倍degree值的knots群组。例如:假设我们有一个degree值为3的NURBS曲线,其Control points为7和knots为0,0,0,1,2,5,8,8,8。这时,前四个Control points和前六个knots为一组。而第二到第五个Control points和knots 0,0,1,2,5,8,为一组。而第三到第六个Control points和knots 0,1,2,5,8,8为一组。最后四个Control points和最后六个knots为一组。
这个不是太懂 ,2倍?
0 回复

举报

修░炼(Elvis) | 实习生 | 发表于 2014-4-2 17:16:38
竟然完全看不懂:
0 回复

举报

·我未够好 | 实习生 | 发表于 2014-7-25 10:34:15
:(有没有简单通俗的讲法
0 回复

举报

sxgtoocold | 设计主管 | 发表于 2015-2-7 09:29:51
非均匀有理B样条,果然一切设计都是建立在科技的技术上啊
0 回复

举报

brteibr521 | 设计助理 | 发表于 2015-7-7 16:47:30
很多地方和专门的NURBS书籍上的内容对不上啊
0 回复

举报