第10部分计算机图形学Bezier曲线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P1 P11 P01
P02
P2
P0 Bezier曲线上的点
3/21/2019 第10部分 Bezier曲线 第17页
P1
P01 (1 t ) P0 tP 1
P11
1 P 1 (1 t ) P 1 tP 2 1 P02 (1 t ) P01 tP 1
P01
P0
P02
n i Bn i ,n (t ) C n [1 (1 t )] n ( n i ) (1 t ) n i i i Cn t (1 t ) n i Bi ,n (1 t )
3/21/2019
第10部分 Bezier曲线
第7页
5.
递推性
Bi ,n (t ) (1 t ) Bi ,n 1 (t ) tBi 1,n 1 (t ), (i 0,1,..., n)
第10部分 Bezier曲线 第2页
3/21/2019ห้องสมุดไป่ตู้
Bezier 曲线历史
– 由于几何外形设计的要求越来越高,传统的曲线曲面 表示方法, 已不能满足用户的需求。 – 1962年,法国雷诺汽车公司的P.E.Bezier构造了一种 以逼近为基础的参数曲线和曲面的设计方法,并用 这种方法完成了一种称为UNISURF 的曲线和曲面 设计系统,1972年,该系统被投入了应用。
i 0
n 1
• 当t=0时,P’(0)=n(P1-P0), • 当t=1时,P’(1)=n(Pn-Pn-1), • 说明Bezier曲线的起点和终点处的切线方向和特征多边形的 第一条边及最后一条边的走向一致。
3/21/2019
第10部分 Bezier曲线
第11页
– 二阶导矢
P(t ) n(n 1) ( Pi 2 2 Pi 1 Pi ) Bi ,n 2 (t )
n! t i (1 t ) n i i!(n i )! (i 0,1, , n)
3/21/2019
第10部分 Bezier曲线
第9页
Bezier 曲线的性质
1.
端点性质
– 曲线端点位置矢量
• 由Bernstein基函数的端点性质可以推得,当t=0时, P(0)=P0 ;当t=1时,P(1)=Pn。由此可见,Bezier曲线的 起点、终点与相应的特征多边形的起点、终点重合。
i 0 n2
• 当t=0时
• 当t=1时
P" (0) n(n 1)( P2 2 P 1P 0)
P " (1) n(n 1)( Pn 2 Pn1 Pn2 )
• 结论:2阶导矢只与相邻的3个顶点有关
3/21/2019
第10部分 Bezier曲线
第12页
2.
对称性
– 由控制顶点
第10部分 Bezier曲线 第22页
3/21/2019
Bezier 曲线的拼接
拼接的需求
– 几何设计中,一条Bezier曲线往往难以描述复杂的 曲线形状。这是由于增加由于特征多边形的顶点数, 会引起Bezier曲线次数的提高,而高次多项式又会 带来计算上的困难,实际使用中,一般不超过10次。 所以有时采用分段设计,然后将各段曲线相互连接 起来,并在接合处保持一定的连续条件。
第10部分 Bezier曲线 第15页
5.
变差缩减性
–
–
3/21/2019
Bezier曲线的矩阵表示
1 1 P0 C (t ) t 1 P 1 0 1
一次
1 3 3 3 6 3 t 1 3 3 0 0 0 1
C (t ) t 2
第5页
3/21/2019
第10部分 Bezier曲线
Bernstein基函数的性质
1.
正性
t 0,1 t (0,1) i 1,2, , n 1
0 Bi ,n (t ) 0 2. 端点性质
(i 0) 1 Bi ,n (0) 0 otherwise (i n) 1 Bi ,n (1) 0 otherwise
1 2 1 P0 P t 1 2 2 0 1 0 0 1 P2
二次
1 P0 P 0 1 0 P2 0 P3
第16页
C (t ) t 3
t2
三次
3/21/2019
i 0 n
t [0,1]
其中:Pi构成该Bezier曲线的特征多边形,Bi,n(t)是n 次Bernstein基函数:
i i Bi ,n (t ) C n t (1 t ) n i
n! t i (1 t ) n i i!(n i )! (i 0,1, , n)
P0
P 1 P2 P3 n=3时
3/21/2019
P01
1 P 1
P02
2 P 1
P21
P03
Pi n 的递推关系
第21页
第10部分 Bezier曲线
2 P 1
P
2 0 1 P 0
P 1
P
1 1
P 2
1 P 2
P 0 0
3 P (1 / 3) P 0
P 3
1/3
1
几何作图法求Bezier曲线 上一点(n=3,t=1/3)
3/21/2019
第10部分 Bezier曲线
第24页
Bezier曲线的升阶与降阶
原始控制顶点P0,P1,...,Pn 新控制顶点为P0*,P1*,...,Pn+1*
3/21/2019
第10部分 Bezier曲线
第25页
从Bezier曲线到B样条曲线
以Bernstein基函数构造的Bezier曲线或曲面有许多优 越性,但有两点不足:
Pi* Pn i ,(i 0,1,..., n)
构造出的新Bezier曲线,与原Bezier曲线形状相同, 走向相反。因为:
C * (t ) Pi Bi ,n (t ) Pn i Bi ,n (t ) Pn i Bn i ,n (1 t ) Pi Bi ,n (1 t )
3/21/2019
第10部分 Bezier曲线
第19页
– 由(n+1)个控制点Pi(i=0, 1, ..., n)定义的n次Bezier曲线 Pn0可被定义为分别由前、后n个控制点定义的两条 (n-1)次Bezier曲线 P0n-1与P1n-1的线性组合: n 1 P0n (1 t ) P0n1 tP t [0,1] 1 – 由此得到Bezier曲线的递推计算公式
P2
2 P02 (1 t ) 2 P0 2t (1 t ) P t P2 1
3/21/2019
第10部分 Bezier曲线
第18页
递推性质
– 当t从0变到1时,它表示了由三顶点P0、P1、P2三点 定义的一条二次Bezier曲线。 – 二次Bezier曲线P20可以定义为分别由前两个顶点 (P0,P1)和后两个顶点(P1,P2)决定的一次 Bezier曲线的线性组合。 – 由四个控制点定义的三次Bezier曲线P30可被定义为 分别由(P0,P1,P2)和(P1,P2,P3)确定的二条二 次Bezier曲线的线性组合
i i i i 1 i n i Bi ,n (t ) Cn t (1 t ) n i (Cn C ) t ( 1 t ) 1 n 1 i i ( n 1) i i 1 i 1 ( n 1) ( i 1) (1 t )Cn t ( 1 t ) tC t ( 1 t ) 1 n 1
(1 t ) Bi ,n 1 (t ) tBi 1,n 1 (t )
3/21/2019
第10部分 Bezier曲线
第8页
6.
导函数
Bi,n (t ) n[ Bi 1,n 1 (t ) Bi ,n 1 (t )], i 0,1, , n;
i i Bi ,n (t ) C n t (1 t ) n i
组合,即曲线落在Pi构成的凸包之中。
凸包
3/21/2019
第10部分 Bezier曲线
第14页
4.
几何不变性
– Bezier曲线位置与形状与其特征多边形顶点Pi(i=0, 1, … , n)的位置有关,不依赖坐标系的选择。 若Bezier曲线的特征多边形 是一个平面图形 P0P1…Pn, 则平面内任意直线与C(t)的交点个数不 多于该直线与其特征多边形的交点个数,这一性 质叫变差缩减性质。 此性质反映了Bezier曲线比其特征多边形的波动还 小,也就是说Bezier曲线比特征多边形的折线更光 顺。
B样条曲线
Pi ,n (t )
3/21/2019
第10部分 Bezier曲线
第23页
• 要使它们达到G0连续的充要条件是:Pn= Q0; • 要使它们达到G1连续的充要条件是:Pn-1,Pn=Q,Q1三点 b1 an ( 0) 共线,即:
Pn-1 an Pn b1 Q1 b2 Q(t)
Pn-2
an-1
Q0
Q2
P(t)
Bezier曲线
Ray
ray@mail.buct.edu.cn
3/21/2019
李辉 副教授
内容
Bezier 曲线历史 Bezier 曲线的定义 Bernstein基函数的性质 Bezier 曲线的性质 Bezier 曲线的递推算法 Bezier 曲线的拼接 Bezier 曲线的升阶和降阶
3/21/2019
第10部分 Bezier曲线
第3页
三次Bezier曲线示例
P 1 P0
P2 P0
P 1
P3
P3
P2
3/21/2019
第10部分 Bezier曲线
第4页
Bezier 曲线的定义
定义
– 给定空间n+1个点的位置矢量Pi(i=0,1,2,…, n),则Bezier曲线可定义为:
P(t ) P i B i ,n (t ),
第10部分 Bezier曲线
Bezier曲线的递推算法
需求
– 计算Bezier曲线上的点,可用Bezier曲线方程,但使 用de Casteljau提出的递推算法则要简单的多。
基本递推算法
– 抛物线三切线定理
1 2 1 P0 P01 P P P 0P 0 1 1 1 2 1 P01 P P P P 1 1 2 0 P 1
– 其一是Bezier曲线或曲面不能作局部修改; – 其二是Bezier曲线或曲面的拼接比较复杂。
1972 年,Gordon、Riesenfeld等人提出了B样条方法 ,在保留Bezier方法全部优点的同时,克服了Bezier方 法的弱点。
3/21/2019
第10部分 Bezier曲线
第26页
B样条曲线
* i 0 i 0 i 0 i 0 n n n n
t [0,1]
3/21/2019
第10部分 Bezier曲线
第13页
3.
凸包性
– –
B
i 0
n
i ,n
(t ) 1 且
0 Bi ,n (t ) 1(0 t 1, i 0,1,, n) Bezier曲线P(t)在 t [0,1] 中各点是控制点Pi的凸线性
(i 0) 1 Bi ,n (0) 0 otherwise (i n) 1 Bi ,n (1) 0 otherwise
3/21/2019
第10部分 Bezier曲线
第10页
– 切矢量
•
'
P (t ) n Pi [ Bi 1,n 1 (t ) Bi ,n 1 (t )]
第10部分 Bezier曲线 第6页
3/21/2019
3.
权性
n
B
i 0 i 0
n
i ,n n
(t ) 1
t (0,1)
i i n i n B ( t ) C t ( 1 t ) [( 1 t ) t ] 1 i ,n n i 0
4.
对称性
Bi ,n (t ) Bni ,n (t )
Pi Pi k k 1 k 1 ( 1 t ) P tP i i 1 k 0 k 1,2,..., n i 0,1,..., n k
– 这便是著名的de Casteljau算法。 – Pn0即为曲线P(t)上具有参数t的点。
3/21/2019 第10部分 Bezier曲线 第20页