P3 图3.4 不难看出下列性质:(i)控制折线近似于该曲线的形状;(i)P=C(),P3=C() )端点处的切线方向分别平行于P-P和P-P2;(ⅳv)曲线包含于所有控制点 的凸包中,即具有凸包性质;(v)变差缩小性质;任何给定的直线与该曲线的交 点数均不超过它与该曲线控制多边形的交点数;(ⅵi)开始(u=0),曲线随PPP 的方向转动;(ⅶi)控制折线的一个回路,未必会导致曲线也有回路(图34) 基函数{B(具有如下性质 (1)非负性 Bn(u)20,对一切,n和0≤u≤ (3.3) (2)单位分解性 ∑Bn(u)=1,0≤u≤1 (3) B0(O)=Bn()=1 (4)Bn(u)在u=i/m处取到它[]在上的最大值; (5)对称性:对任意n,多项式集合{B()中每一个函数关于u=12是对称 的
不难看出下列性质:(i)控制折线近似于该曲线的形状;(ii) (0) P0 = C , (1) P3 = C ; iii)端点处的切线方向分别平行于 P1 − P0 和 P3 − P2 ;(iv)曲线包含于所有控制点 的凸包中,即具有凸包性质;(v)变差缩小性质;任何给定的直线与该曲线的交 点数均不超过它与该曲线控制多边形的交点数;(vi)开始(u=0),曲线随 P1P2P3 的方向转动;(vii)控制折线的一个回路,未必会导致曲线也有回路(图 3.4). 基函数 Bi,n (u) 具有如下性质: (1) 非负性 ( ) 0, , , 0 1; Bi,n u 对一切i n 和 u (3.3) (2) 单位分解性 ( ) 1, 0 1; 0 , = B u u n i i n (3.4) (3) B0,n (0) = Bn,n (1) = 1 ; (3.5) (4) B (u) i,n 在 u = i n 处取到它 0,1 在上的最大值; (5) 对称性:对任意 n,多项式集合 Bi,n (u) 中每一个函数关于 u =1 2 是对称 的;
(6)递推关系 B,(u)=(1-u). -(u+uBi-Ln-(u) (36) 当i<0或讠>n时,定义Bn(u)=0; (7)导数 B"()=dB,(u) dn=n(B-l 1-B a(l) 7 其中约定Bn()=Bn()=0 关系式(36)指出了计算 Bernstein多项式在u处值的方法事实上,它可采取 列表的方法来求得,而表中第n列上的诸元素依次由{Bn(a)给出此处不拟列出 根据(37),可以求得 bezier曲线导数的一般表达式 ∑B=m()-Bn(u)P (38 =n∑Bn()(P1-P) 特别地,在端点处有 C(0)=n(P-P) (0)=n(n-1(P-2P+P2) C=n(P-P),C(=nn-1P-2P-+P-2) 从(38)可知,n次 Bezier曲线的导数是一条n-1次 Bezier曲线而(39)表明,在 u=0,u=1两端点的导数是对称的在一个端点处的k阶刀术,只依赖于从这个端点 算起的k+1个控制点 2次 Bezier曲线
(6) 递推关系 ( ) (1 ) ( ) ( ), Bi,n u = − u Bi,n−1 u + uBi−1,n−1 u (3.6) 当 i <0 或 i >n 时,定义 Bi,n (u) 0 ; (7) 导数 ( ) ( ) n(B (u) B (u)) du dB u B u i n i n i n i n 1, 1 , 1 , , = = − − − − , (3.7) 其中约定 B−1,n−1 (u) Bn,n−1 (u) 0 . 关系式(3.6)指出了计算 Bernstein 多项式在 u 处值的方法.事实上,它可采取 列表的方法来求得,而表中第 n 列上的诸元素依次由 Bi,n (u) 给出.此处不拟列出. 根据(3.7),可以求得 Bézier 曲线导数的一般表达式 ( ) ( ) ( ) i n i i n n i Bi n u Pi B u P du d C u = = = = 0 , 0 , ( ( ) ( )) i n i n i n i n B 1, 1 u B , 1 u P 0 − − − = = − (3.8) ( )( ). 1 1 0 , 1 i i n i = n Bi n u P+ − P − = − 特别地,在端点处有 ( ) ( ) C 0 = n P1 − P0 , ( ) ( )( ) C 0 = n n −1 P0 − 2P1 + P2 , (3.9) ( ) ( ) 1 = − −1 C n Pn Pn , ( ) ( )( ) 1 = −1 − 2 −1 + −2 C n n Pn Pn Pn , 从(3.8)可知, n 次 Bézier 曲线的导数是一条 n −1 次 Bézier 曲线.而(3.9)表明,在 u=0,u=1 两端点的导数是对称的.在一个端点处的 k 阶刀术,只依赖于从这个端点 算起的 k+1 个控制点. 2 次 Bézier 曲线
Cu)=∑B2(a)P 也可以写成 Ca)=(1-l)2P+2(1-u)P+n2P2 -a)(-n)P0+u]+址[(-a)P+aP2] 所以2次 Bezier曲线C(a)也可以由两条1次 Bezier曲线的线性插值而得到 般地,如用C(P0…,P)标是一条n次 Bezier曲线,则由(36)有 Cn(P0…P)=(-aCn(P0…P-)+Cm1(P,…Pn) 固定u=l,并用P1记P,则由(3.10)式可得到如下的计算n次 Bezier曲线上点 C(u0)=Pn0(a)的递推算法: P(a0)=(-u0)P-(u)+a0P-1{) k=1,2,…,n,i=0,1,…,n-k 这就是所谓的 de casteljau算法请读者自己给出n=2和n=3时,该算法的几何解 释,并绘出相应的图形(留作习题) 任一条n次 Bezier曲线C(u)=∑Bn(u)P,均可以表示成同它等价的 n+1次 bezier曲线,即可求得一组,使得 Bn(a)P=∑Bn(a) i=0 为确定诸P,i=0,…n,,用u+(1-)=1乘(312)式左端,并比较两端系数, 可得 P+(n-i+1)P]=01,…,n+1 (3.13) 3.12)-(3.13)称为 Bezier曲线的升阶公式当n=3时,升阶公式引起的控
( ) ( ) , 2 0 ,2 i i C u Bi u P = = 也可以写成 ( ) ( ) ( ) (1 )(1 ) (1 ) . 1 2 1 0 1 1 2 2 2 0 1 2 u u P uP u u P uP C u u P u u P u P = − − + + − + = − + − + 所以 2 次 Bézier 曲线 C(u) 也可以由两条 1 次 Bézier 曲线的线性插值而得到.一 般地,如用 ( ) Cn P Pn , , 0 标是一条 n 次 Bézier 曲线,则由(3.6)有 ( ) ( ) ( ) ( ) Cn P Pn u Cn P Pn uCn P Pn , , 1 , , , , 0 = − −1 0 −1 + −1 0 . (3.10) 固定 u = u0 ,并用 P0,1 记 Pi ,则由(3.10)式可得到如下的计算 n 次 Bézier 曲线上点 ( ) ( ) C u0 = Pn,0 u0 的递推算法: ( ) ( ) ( ) 1,2, , ; 0,1, , . 1 ( ) , , 0 0 1, 0 0 1, 1 0 k n i n k Pk i u u Pk i u u Pk i u = = − = − − + − + (3.11) 这就是所谓的 de Casteljau 算法.请读者自己给出 n=2 和 n=3 时,该算法的几何解 释,并绘出相应的图形(留作习题). 任一条 n 次 Bézier 曲线 ( ) ( ) , 0 , i n i C u Bi n u P = = 均可以表示成同它等价的 n+1 次 Bézier 曲线,即可求得一组 ,使得 ( ) ( ) ( ) + = + = = 1 0 1 , 1 0 , n i i n i n i Bi n u Pi B u P (3.12) 为确定诸 ( ) , 0, , , 1 Pi i = n ,用 u + (1−u) 1 乘(3.12)式左端,并比较两端系数, 可得 ( ) ( 1) , 0,1, , 1 1 1 1 1 + − + = + + = iP− n i P i n n Pi i i (3.13) (3.12)-(3.13)称为 Bézier 曲线的升阶公式.当 n = 3 时,升阶公式引起的控
制多边形的变化如图35所示 图3.5 采用把n次Beer曲线∑Bn()P乘以∑B()=1的办法,也可以使之升阶为 条n+r次 Bezier曲线 B()P=∑Bm、)P0 (314) 其中P为 in+r-l n+1 i=0,1,…,n+r (3.15) 人n-J 用Q记由P(=0,1…,n+r)所构成的控制多边形,则当r趋于∞时,Q收 敛于由(3.14)给出的n次 bezier曲线 C(u)=∑Bn()P 概括起来, Bezier曲线方法具有很强的几何特征方程(39连同凸包性质,以 及变差缩小性质等使得 Bezier曲线适合于曲线的交互式设计控制点使设计者可 直观的控制曲线的形状。 de casteljau算法不仅舍入误差小,而且直观上它可看 作是曲线附近一些点之间线性插值的简单重复 Bezier方法的不便之处在于点的 计算效率不高 以下介绍有理 bezier曲线如所知,多项式虽然有很多方便之处,但也有许
制多边形的变化如图 3.5 所示: 采用把 n 次 Bézier 曲线 ( ) = n i Bi n u Pi 0 , 乘以 ( ) = r j Bj r u 0 , 1 的办法,也可以使之升阶为 一条 n + r 次 Bézier 曲线 ( ) ( ) ( ) + = + = = n r i r i n r i n i Bi n u Pi B u P 0 , 0 , (3.14) 其中 (r) Pi 为 ( ) i n r n n r P n j n r i j i P j r j r i = + + − + − = = , 0,1, , 0 (3.15) 用 Qr 记由 ( ) P (i n r) r i = 0,1, , + 所构成的控制多边形,则当 r 趋于 时, Qr 收 敛于由(3.14)给出的 n 次 Bézier 曲线 ( ) ( ) = = n i C u Bi n u Pi 0 , 概括起来,Bézier 曲线方法具有很强的几何特征.方程(3.9)连同凸包性质,以 及变差缩小性质等使得 Bézier 曲线适合于曲线的交互式设计.控制点使设计者可 直观的控制曲线的形状。de Casteljau 算法不仅舍入误差小,而且直观上它可看 作是曲线附近一些点之间线性插值的简单重复.Bézier 方法的不便之处在于点的 计算效率不高. 以下介绍有理 Bézier 曲线.如所知,多项式虽然有很多方便之处,但也有许
多的曲线,曲面是不能用多项式精确表示的例如圆、椭圆、双曲线、圆柱体、 圆锥体和球等作为例子,我们可以证明xy平面上的以圆点为心的单位圆周是不 能用多项式坐标函数来表示的若不然,假定 +a1l+…+anu 0=bo+b, bu 则由x2+y2-1=0,推出如下的关系式 2(aa,+b b2+(2+2a2+b2+2b2x2+… +(a2, +2am- a ,+b2+2bn-2 b, k 2n-2 +2(a,am+b,bm-1)uml+(aa +b2 2m=0 从而所有的a和b(=1,2,…,n)恒为0。即 y(u)=bo 此与假设矛盾 如同人们知道的那样,所有的圆锥曲线(包括圆、椭圆、双曲线、抛物线等) 都可用作为两多项式之比的有理函数表示出来即它们可表示为 Y(u yu w(u w(u) (3.16) 其中X(a)Y(a)和(a)为多项式注意上式中两有理函数具有相同的分母W(u) 例如,以圆点为心,以1为半径的圆,可表示为 +ul 1+t2 再如,以(04/3)为中心,以y轴为实轴的双曲线可表示为 x(a)= (u) 至于抛物线,它可用有理分式的特例—多项式表示出来 为研究一般情形,定义n次有理 Bezier曲线
多的曲线,曲面是不能用多项式精确表示的.例如圆﹑椭圆、双曲线、圆柱体、 圆锥体和球等.作为例子,我们可以证明 xy 平面上的以圆点为心的单位圆周是不 能用多项式坐标函数来表示的.若不然,假定 ( ) ( ) . , 0 1 0 1 n n n n y u b b u b u x u u u = + + + = + + + 则由 1 0 2 2 x + y − = ,推出如下的关系式 ( ) ( ) ( ) ( ) 2( ) ( ) 0. 2 2 1 2 2 2 2 1 2 2 2 1 1 2 2 2 2 2 1 2 1 2 0 2 2 0 2 1 2 0 1 0 1 1 2 0 2 0 + + + + + + + + + − + + + + + + + − − − − − − − − n n n n n n n n n n n n n n n a a b b u a b u a a a b b b u a b a a b b u a a a b b b u 从而所有的 i a 和 b (i 1,2, ,n) i = 恒为 0。即 ( ) 0 0 x u = a , y(u) = b 此与假设矛盾. 如同人们知道的那样,所有的圆锥曲线(包括圆﹑椭圆、双曲线、抛物线等) 都可用作为两多项式之比的有理函数表示出来.即它们可表示为 ( ) ( ) ( ) ( ) ( ) ( ) , , W u Y u y u W u X u x u = = (3.16) 其中 X(u),Y(u) 和 W(u) 为多项式.注意上式中两有理函数具有相同的分母 W(u). 例如,以圆点为心,以 1 为半径的圆,可表示为 ( ) ( ) . 1 2 , 1 1 2 2 2 u u y u u u x u + = + − = 再如,以 (0,4 3) 为中心,以 y 轴为实轴的双曲线可表示为 ( ) ( ) ( ) . 1 2 2 4 1 , 1 2 2 1 2 2 2 u u u u y u u u u x u + − − = + − − + = 至于抛物线,它可用有理分式的特例——多项式表示出来. 为研究一般情形,定义 n 次有理 Bézier 曲线