1.2 NURBS发展简史
NURBS是NonUniform Rational B-Splines的首字母缩写,全称为“非均匀有理B样条”,是一种在计算机辅助几何设计CAGD(Computer Aided Geomery Design)中表达曲线、曲面的数学方法。
图1.1 样条
在使用计算机进行辅助设计之前,设计人员使用绘图笔、丁字尺、圆规、三角板、曲线尺等工具在纸面上描绘设计图纸,应用画法几何和系列的工程制图的方法表达产品的尺寸、结构、装配等。画法几何使用3个互相垂直方向的平行投影来表达产品结构,这种表达方式适合表达方体、圆体以及有明确边界线的物体,对于二次圆锥曲线以外复杂曲线曲面的表达则力不从心。因此产品的设计常常采用最简单的几何形体进行设计,产品的形态以直线、多边形、圆、椭圆为主。而在实际工程应用中,如果需要制造具有曲线曲面的产品,例如船壳、飞机壳体、汽车壳体等,设计和制造通常都是近似的方式,没有精确的数学表达方法。例如造船,设计人员在图纸上画出船的龙骨或船壳曲线,在制造时由放样员(Loftsman)将图纸上的曲线放大到实际制造的尺寸,并使之与图纸上的曲线形状一致。放样员使用一种材质、尺寸均匀一致的有弹性的木条、金属条或者塑料条制成的细长条作为工具,在需要弯曲的地方用压铁对它施加一个作用力,使之弯曲变形,然后调整施加作用力的地点和大小,使细长条达到想要的形状。如图1.1所示,这个细长条就叫做样条(Spline)。由于样条材质均匀,它在受力变形后整体仍可保持平滑、光顺。
计算机时代来临后,人们想要用计算机进行辅助设计,用它来设计、绘制各种图形,尤其在飞机、汽车等制造领域,更需要用它来绘制各种各样的曲线曲面。目前的计算机只能处理数据并对之进行数学运算,所以,要用计算机绘制曲线曲面,必须有数学方法来精确地表达曲线和曲面,这样计算机可以通过方程式计算出曲线、曲面上所有的点,并在屏幕上或其他输出设备上绘制出来。因此,寻找灵活、高效地表示曲线曲面的数学方法,一直是计算机辅助几何设计中的一项主要工作内容。
放样员使用的样条,由于它的材质统一均匀,材料分子间的作用力也是均匀而连续的,所以它在受力变形时仍然能够保持光滑。通过力学计算,很容易发现样条在相邻两个压铁之间的曲线方程是一个三次多项式。受此启发,工程师和数学家们试图寻找描述曲线的优秀数学方法,并在过去的几十年间不断取得成果。
最早提出样条理论的是舍恩伯格(Schoenberg),他于1946年发表论文,阐述了样条理论。1963年,美国波音飞机公司的弗格森(Ferguson)提出,可以把曲线曲面表示为参数的矢函数:用参数多项式表达曲线时,可以采用不同的“基函数”(如后来的NURBS中的字母B就是指其采用了“B样条”基函数),由不同的基函数构造的曲线具有不同的特征。同样在20世纪60年代,美国麻省理工学院的史蒂夫·孔斯(Steve Coons)提出了Coons方法,用分片的曲面拼接来构造更复杂的大曲面。另一位在此领域做出重要贡献的是法国雷诺汽车公司的工程师贝塞尔(Bezier)。1962年,他提出了能够使用户方便地移动控制点来修改曲线形状的曲线表示方法—Bezier方法,并在此理论基础上建立了一套自由曲线曲面设计系统—UNISURF,这套系统引起了许多大型飞机公司的兴趣,并在设计生产中投入了应用。贝塞尔方法使用了“伯恩斯坦”基函数,这在今天已经成为贝塞尔曲线曲面的标准定义。20世纪70年代初,英国剑桥大学的罗宾·佛瑞斯特(Robin Forrest)完善了曲线分割和曲线升阶的计算方法,并成功地在剑桥大学的CAD实验室中使用自己开发的数控CAD切割机切割出B样条曲面模型。在同一时期,通用汽车公司的de Boor使用一个在当时不常用的基函数—B样条基函数来描述曲线并提出了它的算法,英格兰的Cox也提出了同样的方程,这种方法成为今天描述B样条基函数的典型方法,我们称之为de Boor & Cox算法。1971年,瑞奇·雷森弗德(Rich Riesenfeld)和来自通用汽车研究实验室的比尔·高登(Bill Gordon)将de Boor & Cox算法和曲线描述结合起来,提出了B样条曲线的矢量描述方法。1974年,在美国犹他大学举办的世界第一次计算机辅助设计国际会议上,正式将计算机辅助设计定名为CAGD(计算机辅助几何设计)。1979年,瑞奇·雷森弗德(Rich Riesenfeld)和伊莱恩·科恩(Elaine Cohen)为解决非均匀节点的计算问题,与挪威奥斯陆大学的汤姆·里奇(Tom Lyche)合作,共同提出了针对非均匀B样条的“奥斯陆算法”,利用这种算法,用户可以插值计算和细分非均匀B样条,可以在需要的地方对曲线进行局部的调整,如插入节点等操作,从而使非均匀B样条得到广泛的应用。1983年,美国SDRC(Structural Dynamics Research Corporation)公司首先将基于NURBS的几何造型系统GEOMOD推向商业应用,此后,越来越多的CAD软件系统开始采用NURBS作为曲面建造方式,NURBS曲线曲面也成为初始图形信息交换系统IGES(Initial Graphics Exchanges Standard)中曲线曲面的定义标准。