服务共青 服务市民   新闻投稿 手机版! 注册! 登录
 
 
 
  忘记密码
 
 
 
 

贝兹曲线和nurbs曲线有什么关系吗

NURBS是有理B-splines曲线,它的基函数是有理函数。而Bezier曲线和B-splines曲线更接近一些,基函数都为多项式函数。从Bezier到B-splines到NURBS的演化过程是一种扩展,应用这些曲线能够准确描述的几何范围依次变大。Bezier曲线可以看成B-splines曲线的特殊形式。当B-splines曲线的参数空间只有一个区间,并且对应的knotvector是open时则和Bezier曲线的定义相同。例如二阶Bezier曲线:此时的KnotVector为{0,0,0,1,1,1},参数空间为[0,1]当B-spline曲线的knotvector不只有一个区间时,其基函数就可能在多个区间都不为零。例如knotvector={0,0,0,0.5,1,1,1},参数空间共有两个区间分别为[0,0.5)和[0.5,1]上图中的第2个和第3个基函数在两个区间都不为零,而第1个和第4个基函数分别指在前一区间和后一区间有非零值。直接结果就是如果移动第1个和第4个基函数对应的控制点,P0和P4,只会对曲线的部分产生影响。例如如果移动P0的位置,那么只有参数区间[0,0.5)在物理空间中的象会改变。如果移动第2个和第3个基函数对应的控制节点,那么整个曲线都会改变。当对B-splines曲线使用knotinversion算法在其参数空间插入已经存在的节点,是所有中间节点的重复次数都等于曲线的阶数时,B-splines曲线可看作首尾相连的多个分段的Bezier曲线。刚才二阶B-splines曲线的knotvector由{0,0,0,0.5,1,1,1}变为{0,0,0,0.5,0.5,1,1,1}。中间节点0.5重复两次后得到注意观察图中右边的基函数图像,并和第一张图中的基函数对比。(截图来源于一个网页上的NURBS小工具:http://geometrie.foretnik.net/files/NURBS-en.swf)---------而NURBS曲线可看作为B-splines曲线的扩展形式。利用NURBS可以完美地表示圆锥曲线。几何上,可以将NURBS曲线理解为B-spllines曲线在某一平面的投影。例如上图中黑色的三维曲线是B-splines曲线,而红色的圆为NURBS曲线。蓝色和绿色的虚线分别是它们的控制网格。红色的圆可看作是黑色的三维曲线投影到z=1的平面形成的。具体的数学方法是给每个控制节点加上一个权重值,然后基函数由原来的多项式变为有理函数上式中N代表B-splines的基函数而R代表NURBS的基函数,w则是各个控制点的权重。--------题主提到了样条曲线的历史和演变,个人印象中(有待确认)的过程大概是:Mechanicalsplines->Beziercurve->B-splines->NURBS->T-splines从Bezier开始都算是Digital或者Numericalspline了。此外NURBS之后应该还有个hierarchicalB-splines,和T-splines一样可以是实现局部精细化,可以准确地描述如螺旋桨这样复杂的曲面。不过我还没在常见的CAD软件中见到过,貌似Rhino什么的只支持NURBS。更正:Autodesk有提供收费的T-spline插件给Rhino。---------最近正好看到一篇blog关于样条的历史,这里贴出来:OntheSpline:ABriefHistoryoftheComputationalCurve(Full)文中有一张图用以展示演变过程:

上一篇:SonyA7ii外接ZoomH1录视频底噪很大有解决方法吗
下一篇:wp口碑那么好为什么消费者不买账
友情链接
 
时代网简介 |
广告服务 |
诚聘英才 |
保护隐私权 |
免责条款 |
法律顾问 | 网站地图
 
   
copyright 2006-2010 共青时代网 版权所有
   
   
赣ICP备06002174号 网络文化经营许可证号360400000336 网安备案号:WZ36040000142
     
   
经营性网站
备案信息
中国
互联网协会
网络110
报警服务
不良信息
举报中心