|
图1. T-样条曲面的控制网格(左),knot结构(右)和奇异点(黄色区域)。(贺英等/图)
现代社会中,汽车,船舶和航空制造业,乃至整个机械工业都是基于样条理论的。随着加工曲面的拓扑和几何日趋复杂,样条构造方法需要被推广到流形情形。在过去的数十年间,将样条理论自然地推广到流形上一直是几何建模领域的中心课题。但是,无论学者和工程师如何殚精竭虑,巧思妙想,曲面上的样条构造总是无法避免一些光滑性变差的奇异点。陈类理论指出这些努力是徒劳的,样条理论的基本构造决定了其内在不可避免的缺陷。
传统样条理论本质上是基于仿射几何不变量,因此样条理论的推广依赖于流形是否允许定义仿射几何,或者等价地,流形是否有仿射结构。陈省身示性类理论证明,通常流形上不存在仿射结构,因此传统样条理论无法自然地向流形推广。从而如何减少奇异点的个数,控制奇异点的位置成为研究重点。
同时,我们指出虽然曲面上不存在仿射结构,但是存在实射影结构。如果我们能够基于射影不变量(例如交比)来构造样条,那么样条理论可以直接推广到曲面情形,奇异点的问题将会被彻底根除。
传统样条理论
历史上,传统的样条构造理论是依随汽车工业的发展而诞生。设计人员首先设计控制多边形,然后通过改变控制点的位置来调节样条曲线的形状。样条曲线B(t)是用分片有理多项式来模仿控制多边形的形状,对于每个参数值t,B(t)可以视作是几个控制点的加权平均,权重依随参数t变化。
贝塞尔曲线 我们先看最简单的贝塞尔曲线情形。
图2. 贝塞尔曲线的de Casteljau算法。
给定控制点,贝塞尔曲线定义为:
,
这里基函数为伯恩斯坦多项式,构成单位分解:
。
如图2所示,贝塞尔曲线的求值一般用de Casteljau算法:给定参数值,
首先在控制多边形的每条边上按比例插值:
,
然后连接新生成的点,构成2级控制多边形,在2级控制多边形的每条边上按比例插值:
,
然后连接新生成的点,构成3级控制多边形,在3级控制多边形的每条边上按比例插值:
,
以此类推,直至最后只得到一个点。
B-样条曲线 B-样条曲线是贝赛尔曲线的直接推广,我们直接讨论其求值的de Boor算法。首先,我们在参数直线上定义knots:
,
假设B-样条曲线为3次,那么每三个连续的knots对应着一个控制点,记为
,
求值过程如下:每一个节点对应着3个knots,
图3. B-样条的de Boor算法。
其中的每一步都是线性插值,例如:
图4. de Boor算法中的线性插值。
换言之,
,因此等于。
贝塞尔曲线是B-样条曲线的特例,其控制点对应的knots为。
极形式 实质上,B-样条的de Boor算法反映了B-样条的理论基础:极形式(Polar form)。一个多元多项式被称为是极形式,如果它满足如下两条:
对称性:令是n个数的全排列,则
仿射性:,
对于任何一个n次多项式,都存在唯一的一个极形式,使得:
。
我们看一个例子:一元三次多项式具有一般形式
,
则其对应的极形式为:
B-样条曲线是分片多项式,每一片有对应的极形式,极形式在三个连续的knots上的取值就是对应的控制点。de Boor算法就是利用极形式的对称性和仿射性来求得的过程。
参数仿射不变性 极形式是B-Spline的理论基础,仔细观察de Boor算法的示意图,我们看到每一步都是根据当前参数t和knots之间的比例,按比例进行线性插值。例如图4,线性组合的权重等于参数t和knots之间的比例。如果,我们对参数进行仿射变换:
,
那么三点间的比例不变,
,
那么我们用作为新的参数,做knots,原来的控制点位置不变,但是相应的knots变为,构造B-样条,则和原来B-样条曲线重合,并且可以表示为。这个特性被称为是B-样条函数的参数仿射不变性。换言之,极形式是基于仿射不变量(共线三点间的比例)来构造的,因此在参数仿射变换下不变。
B-样条曲面
由样条曲线向样条曲面推广,一种方法是所谓的张量积的方法,
图5. 用张量积来构造贝塞尔曲面片。
例如,双立方贝塞尔曲面片具有控制网格,曲面定义为
,
张量积的方式需要控制网格和knots网格都具有张量积的结构,拓扑上的限制比较大。
另外一种方式是将极形式推广,这里每个变量都是二维平面上的一点。这种方式定义的样条曲面可以直接定义在平面区域的任意三角剖分上,因此具有极大地灵活性。Dahmen, Micchelli 和 Seidel在九十年代发明了DMS样条曲面【1】,将极形式定义在平面区域的任意三角剖分上面。
一个自然的问题是:既然DMS样条可以定义在平面区域上的任意三角剖分上,那么它能否推广到曲面的三角剖分上?
流形样条
仿射结构 从上述讨论我们看出,传统样条理论是基于极形式理论的,极形式是基于仿射不变量的。因此,如果我们能够将极形式定义在封闭曲面上,则样条理论可以直接推广到封闭曲面上面。这等价于,封闭曲面上能否定义仿射几何。如果曲面允许仿射结构,则仿射几何可以定义在曲面上。
图6. 曲面的仿射图册。
我们考察一个曲面,具有图册,任取两个局部坐标系,坐标变换是,如果所有坐标变换都是仿射变换,
,
这里变换系数在上为常数,而非逐点变化的函数,那么这个图册被称为是一个仿射图册,最大的仿射图册被称为是一个仿射结构。
图7. 流形样条。
流形样条 假如曲面具有仿射图册,则我们可以把极形式推广到曲面之上。图7显示了流形样条的概念。我们任选一个局部坐标系,然后在平面坐标上依照传统方式定义样条曲面。如果两个开集相交,我们在两个坐标系和上分别定义样条曲面和,使用同样的控制网格。因为坐标变换是仿射的,根据极形式的参数仿射不变性,我们有。这意味着样条曲面和局部参数的选取无关,因而是全局定义的。通过这种方式,我们自然地把传统的样条理论推广到具有仿射结构的流形上【2】。
拓扑障碍 非常不幸的是,一般曲面并没有仿射结构。这一点可以通过陈类方法来证明。假如封闭曲面S具有仿射结构,我们在曲面上任取一开集U,在U的切丛上构造标架场, 然后我们构造联络恒为0,则曲率形式恒为0。令U'为与U相交的开集,在交集上局部坐标变换为g,则由,我们得到恒为0,曲率形式,因此恒为0。由高斯-博内定理,,因此曲面亏格必然为1,否则曲面上没有仿射结构。
奇异点 在工程上,人们需要曲面具有连续的曲率,因此样条曲面应该至少连续。从另外角度而言,在机械加工过程中,我们应该能够控制车刀或钻头的力量,工件的加速度,因此曲面至少需要二阶连续。但是,对于没有仿射结构的曲面,传统样条曲面不可能被全局定义,因而不可避免地存在奇异点。在奇异点,曲面的二阶连续性难以被保证。因此在实践中,人们尽量减少奇异点的个数。那么,奇异点个数下界是多少呢?
如果封闭曲面的欧拉数非0,则奇异点个数的下界是1。如果曲面为拓扑球面,去除一点后,曲面同胚于全平面。如果曲面亏格大于1,根据离散曲面里奇流理论,存在一个黎曼度量,它把所有的曲率都集中在一点,即为奇异点。非奇异点的曲率处处为0。我们将奇异点去除,然后构造余下部分的开覆盖,把每一个开集等距地映到平面上。由此得到一个图册,其坐标变换都是平面上的等距变换,即旋转和平移,因此所得图册为仿射图册。
图8.曲面上的T-Spline
图9. 逆向工程 - 将点云转化为T-Spline。
讨论
很多年后,老顾有幸见到了样条理论的缔造者们。老顾向de Boor大师解释了仿射结构的陈类障碍,de Boor大师深以为然。老顾又见到了Goldman等前辈,他们向老顾解释说当年发展这套理论时所考虑的曲面形状过于简单,工业发展过快,没有拓扑学家几何学家加入,工程师和应用数学家不太熟悉陈类理论,因此样条理论留下了本质缺憾。目前,NURBS早就成为了工业标准,无数条生产线都已经建成,从根本上改变工业流程绝无可能。
一般曲面上不存在仿射结构,但是存在实射影结构,这意味着射影几何可以定义在一般曲面之上。如果我们能够用射影不变量来构造样条函数,那么目前样条理论的缺陷就会迎刃而解。如何建立射影极形式/样条理论将是我们努力的方向。
【1】C.A. Dahmen, W.A. Micchelli and H.-P. Seidel. Blossoming begets B-spline bases built better by B-patches. Mathematics of Computation, 59(199):97-115,July 1992.
【2】Xianfeng Gu, Ying He and Hong Qin. Manifold Splines. Grpahical Model, 68(3):237-254 (2006).
请长按下方二维码,选择 “识别图中二维码”,即可关注。
【老顾谈几何】邀请国内国际著名纯粹数学家,应用数学家,理论物理学家和计算机科学家,讲授现代拓扑和几何的理论,算法和应用。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 12:32
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社