本文整理自西安交通大学软件学院祝继华老师的计算机图形学课件,请勿转载
贝塞尔曲线与曲面
定义
给定空间n+1个点的位置矢量 P i ( i = 0 , 1 , 2 , … , n ) P_i(i=0,1,2,…,n) Pi(i=0,1,2,…,n),则Bezier参数曲线上各点坐标的插值公式是:
P i P_i Pi构成该Bezier曲线的特征多边形
B i , n ( t ) B_{i,n}(t) Bi,n(t)是n次Bernstein基函数:
Betnstein基函数的性质
- 正性
- 端点性质
- 权性
- 对称性
-
递推性
即高一次的Bernstein基函数可由两个低一次Bernstein基函数线性组合而成
Bezier曲线的性质
-
端点性质
-
由Bernstein基函数的端点性质可以推得,当t=0时,P(0)= P 0 P_0 P0 ;当t=1时,P(1)= P n P_n Pn。由此可见,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。
-
二阶导矢
上式表明:2阶导矢只与相邻的3个顶点有关,事实上,r阶导矢只与(r+1)个相邻点有关,与更远点无关。
-
-
k阶导函数的差分表示
高阶向前差分矢量由低阶向前差分矢量递推地定义
-
对称性
由控制顶点 P i ∗ = P n − i , ( i = 0 , 1 , . . . , n ) P^*_i=P_{n-i},(i=0,1,...,n) Pi∗=Pn−i,(i=0,1,...,n)构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反
这个性质说明Bezier曲线在起点处有什么几何性质,在终点处也有相同的性质
-
凸包性
-
几何不变性
某些几何特性不随坐标变换而变化的特性;
Bezier曲线位置与形状与其特征多边形顶点 P i ( i = 0 , 1 , . . . , n ) P_i(i=0,1,...,n) Pi(i=0,1,...,n)的位置有关:
-
变差缩减性
若Bezier曲线的特征多边形 P 0 P 1 . . . P n P_0P_1...P_n P0P1...Pn是一个平面图形,则平面内任意直线与P(t)的交点个数不多于该直线与其特征多边形的交点个数;
反映了Bezier曲线比其特征多边形的波动还小。
-
仿射不变性
Bezier曲线的递推算法
de Casteljau(德卡斯特里奥)递推算法
由(n+1)个控制点 P i ( i = 0 , 1 , . . . , n ) P_i(i=0,1,...,n) Pi(i=0,1,...,n)定义的n次Bezier曲线 P 0 n P_0^n P0n可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线 P 0 n − 1 P_0^{n-1} P0n−1与 P 1 n − 1 P_1^{n-1} P1n−1的线性组合:
由此得到Bezier曲线的递推计算公式
- 在给定参数下,求Bezier曲线上一点P(t)非常有效。
- 上式中: P i 0 = P i P_i^0=P_i Pi0=Pi 是定义Bezier曲线的控制点, P 0 n P_0^n P0n即为曲线 P ( t ) P(t) P(t)上具有参数t的点。
- 算法稳定可靠,直观简便,可以编出十分简捷的程序,是计算Bezier曲线的基本算法和标准算法。
当n=3时,算法递推出的 P i k P_i^k Pik呈直角三角形,对应结果如图所示。从左向右递推,最右边点 P 0 3 P_0^3 P03即为曲线上的点
Bezier曲线的升阶
升阶:保持Bezier曲线的形状与方向不变,增加定义它的控制顶点数,提高该Bezier曲线的次数
新控制顶点的计算
上述结果说明:
- 新的控制顶点 P i ∗ P_i^* Pi∗是以参数值 i n + 1 \frac{i}{n+1} n+1i按分段线性插值从原始特征多边形得出的
- 升阶后的新的特征多边形在原始特征多边形的凸包内
- 特征多边形更靠近曲线。
Bezier曲面
定义
在一般实际应用中m,n 不大于4
性质
- 几何不变性。
- 对称性。
- 凸包性。
- 除变差缩减性质外,Bezier曲线的其它性质可推广到Bezier曲面
递推算法
Bezier曲线的递推算法可推广至Bezier曲面的情形