昵称:烦夫子
类别:界面/平面设计师
年龄:38
现所在地:北京
主页浏览总数:24260
总积分:89
文章数:88
作品数:70
摘 要:本文从De Boor-Cox递推公式出发,推导了三次非均匀B样条曲线的系数矩阵,给出了其简单的计算式,方便了编程,加快了计算。
关键词 系数矩阵 B样条
1.引言
均匀、准均匀B样条曲线的系数矩阵[1]应用很广,但是非均匀B样条曲线的系数矩阵却很少使用,原因有两个:第一,现有的非均匀B样条曲线的系数矩阵的表达式[4]很复杂,一般都由多级求和式给出,不易被理解,编程实现,计算复杂等;第二,因为有了德布尔算法[1],很多有关于B样条曲线的计算,都不要求计算系数矩阵。但有的时候却希望能给出非均匀B样条曲线的系数矩阵,因为系数矩阵比递推公式更直观。由于三次B样条曲线在工程上的应用很广泛,所以笔者专门推导了三次非均匀B样条曲线的系数矩阵,给出了其简单的表达式。由于均匀、准均匀B样条曲线都是非均匀B样条曲线的特例,所以该结果同样适用于均匀、准均匀B样条曲线系数矩阵的计算。
2.一般非均匀B样条曲线的定义
B样条曲线由一折线定义,该折线称为B样条曲线的控制多边形,该折线的顶点称为B样条曲线的控制点。假设某折线的顶点依次为Pi(i=0,1,…,n),则由该折线定义的B样条曲线为:
其中
范B样条,简称为B样条,共n+1条。B样条基函数有多种等价定义,用得比较多的是作为标准算法的De Boor-Cox递推定义,又称为De Boor-Cox递推公式[2,3],定义式如下:
上式中
称为节点矢量,是一个非减的序列。由(2)式可看出,B样条基函数是由其节点矢量决定的,节点矢量不同,所得到的B样条基函数也不同。
B样条
[ti,ti+1],[ti+1,ti+2],…,[ti+k,ti+k+1]子区间上分别有不同的定义式。B样条在节点处具有k-r次连续,这里r为节点的重复度,在区间内部具有无限次连续。B样条基满足规范性,即:
B样条曲线的定义域为[tk,tn+1],定义域以节点为分割点,被分为n-k+1个子区间,分别为[tk,tk+1],[tk+1,tk+2],…,[tn,tn+1]。B样条曲线也是分段定义的,它在各子区间上有不同的定义式,本文中把各段分别编号为C0,C1,…,Cn-k,即Ci的定义域为[ti+k,t i+k+1]。B样条曲线在节点处也具有k-r次连续,在区间内部具有无限次连续。