计算机图形学第7讲贝塞尔曲线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这便是著名的de Casteljau算法。用这一递推公式,在给定参数
下,求Bezier曲线上一点P(t)非常有效。上式中:是定义Bezier
计算机图形学
Bezier曲线的递推(de Casteljau)算法
曲线的控制点,P0n 即为曲线 P(t)上具有参数t的点。de Casteljau算 法稳定可靠,直观简便,可以编出十分简捷的程序,是计算 Bezier曲线的基本算法和标准算法。 当n=3时,de casteljau算法递推出的Pki呈直角三角形,对应结 果如图3.1.11所示。从左向右递推,最右边点P30即为曲线上的 点。
计算机图形学
Bezier曲线的递推(de Casteljau)算法
P1
P11
P01
P02
P2
P0
Bezier曲线上的点
图3.1.10 抛物线三切线定理
计算机图形学
Bezier曲线的递推(de Casteljau)算法
当P0,P2固定,引入参数t,令上述比值为t:(1-t),即有:
P01 (1 t)P0 tP1 P11 (1 t)P1 tP2 P02 (1 t)P01 tP11
为:
n
n
n
n
C *(t) Pi*Bi,n (t) Pni Bi,n (t) Pni Bni,n (1 t) Pi Bi,n (1 t),
i0
i0
i0
i0
t [0,1]
这个性质说明Bezier曲线在起点处有什么几何性质, 在终点处也有相同的性质。
计算机图形学
Bezier曲线的性质
(3)凸包性 n
图3.1.9 Bezier曲线的凸包性 计算机图形学
Bezier曲线的性质
(4)几何不变性。这是指某些几何特性不随坐标变 换而变化的特性。Bezier曲线位置与形状与其特征多 边形顶点 Pi(i 0,1,,n)的位置有关,它不依赖坐标系的选 择。
计算机图形学
Bezier曲线的性质
(5)变差缩减性。若Bezier曲线的特征多边形
计算机图形学
Bezier曲线的性质
b)切矢量
n1
因为,P'(t) n Pi[Bi1,n1(t) Bi,n1(t)] 所以当t=0时, i0
P’(0)=n(P1-P0),当t=1时,P’(1)=n(Pn-Pn-1),这说明 Bezier曲线的起点和终点处的切线方向和特征多边形 的第一条边及最后一条边的走向一致。
t从0变到1,第一、二式就分别表示控制二边形的第一、二 条边,它们是两条一次Bezier曲线。将一、二式代入第三式得:
P02 (1 t)2 P0 2t(1 t)P1 t 2P2
当t从0变到1时,它表示了由三顶点P0、P1、P2三点定义的一 条二次Bezier曲线。并且表明:这二次Bezier曲线P20可以定义 为分别由前两个顶点(P0,P1)和后两个顶点(P1,P2)决定 的一次Bezier曲线的线性组合。依次类推,由四个控制点定
Bi,n (t) Cniti (1 t)ni [(1 t) t]n 1
i0
i0
计算机图形学
Betnstein基函数的性质
(4)对称性
Bi,n (t) Bni,n (1- t)
因为
Bni,n
(1-
t
)
C ni n
[1
(1
t
)]n ( n i )
(1
t)ni
Cni t i (1 t)ni Bi,n (1 t)
r阶导矢只与(r+1)个相邻点有关,与更远点无关。
将P'(0)、P"(0) 及 P'(1) 、 P"(1) 代入曲率公式 k(t) 可以得到Bezier曲线在端点的曲率分别为:
, P'(t) P"(t) P' (t) 3
k (0)
n 1 n
(P1
P0 ) (P2 P1 P0 3
P1 )
k (1)
计算机图形学
Bezier曲线的递推(de Casteljau)算法
义的三次Bezier曲线P30可被定义为分别由(P0,P1,P2)和(P1, P2,P3)确定的二条二次Bezier曲线的线性组合,由(n+1)个控 制点Pi(i=0, 1, ..., n)定义的n次Bezier曲线Pn0可被定义为
计算机图形学
Bezier曲线的拼接
给定两条Bezier曲线P(t)和Q(t),相应控制点为Pi(i=0, 1, ..., n) 和Qj(j=0,1,..., m),且令 ai Pi Pi1,bj Qj Qj1 ,如图3.1.13所 示,我们现在把两条曲线连接起来。
Pn-2
Pn-1
an
Pn
an-1
分 别 由 前 、 后 n 个 控 制 点 定 义 的 两 条 (n-1) 次 Bezier 曲 线
P0n-1与P1n-1的线性组合:P0n
(1
t
)
P n 1 0
tP1n1
t [0,1]
由此得到Bezier曲线的递推计算公式:
Pi k
(1
t
)
Pi
Pi
k 1
tPik11
k 0 k 1,2,..., n,i 0,1,..., n k
计算机图形学
Bezier曲线的递推(de Casteljau)算法
P0
P1
P01
P2
P11
P02
P3
P21
P12
P03
图3.1.11 n=3时Pin 的递推关系
计算机图形学
Bezier曲线几何作图法
这一算法可用简单的几何作图来实现。给定参数 t [0,1],就把定义域分成长度为 t : (1 t) 的两段。依次对 原始控制多边形每一边执行同样的定比分割,所得分 点就是由第一级递推生成的中间顶点 Pi1(i 0,1,, n 1) , 对这些中间顶点构成的控制多边形再执行同样的定比 分割,得第二级中间顶点 Pi2(i 0,1,, n 2) 。重复进行下 去,直到n级递推得到一个中间顶点 P0n 即为所求曲线上 的点 P(t),如图3.1.12所示。
P0P1Pn 是一个平面图形,则平面内任意直
线与C(t)的交点个数不多于该直线与其特征多 边形的交点个数,这一性质叫变差缩减性质。 此性质反映了Bezier曲线比其特征多边形的波 动还小,也就是说Bezier曲线比特征多边形的 折线更光顺。
计算机图形学
Bezier曲线的性质
(6)仿射不变性
对于任意的仿射变换A:
Bi
,n1
(t
)
i 1 n 1
Bi 1,n 1 (t )
计算机图形学
2.Betnstein基函数的性质
(9)积分
1
0
Bi,n (t)
1 n 1
计算机图形学
Bezier曲线的性质
(1)端点性质 a)曲线端点位置矢量 由Bernstein基函数的端点性质可以推得,当t=0时,
P(0)=P0 ;当t=1时,P(1)=Pn。由此可见,Bezier曲 线的起点、终点与相应的特征多边形的起点、终点重 合。
(Cni 1
C i1 n1
)t
i
(1
t
)
ni
(1 t)Cni 1t i (1 t)(n1)i tCni11t i1(1 t)(n1)(i1)
(1 t)Bi,n1(t) tBi1,n1(t)
计算机图形学
2.Betnstein基函数的性质
(6)导函数
Bi,n (t) n[Bi1,n1 (t) Bi,n1 (t)],
并满足方程 Q"(0) 2P"(1) P'(1)。
我们将 、 Q"(0) P"(1) 和 P'(1) ,Q0 Pn 、 Q1 Q2 (Pn Pn1) 代入,并整理,
可以得到:
Q2
2
2
n 1
1
Pn
2 2
2
n
1
由于 ,且 Bi,n (t) 1 0 Bi,n (t) 1(0 t 1,i 0,1,, n) ,这一结果 i0
说明当t在[0,1]区间变化时,对某一个t值,P(t)是特 征多边形各顶点的加权平均,权因子依次是 Bi,n (t) 。在 几何图形上,意味着Bezier曲线P(t)在 t [0,1]中各点是控 制如图点3P.i1的.9凸所线示性。组合,即凸曲包线落在Pi构成的凸包之中,
i 0,1, , n;
(7)最大值。Bi ,n (t ) 在 t
i n
处达到最大值。
计算机图形学
2.Betnstein基函数的性质
(8)升阶公式
(1
t ) Bi ,n
(t
)
(1
n
i
) 1
Bi,n1
(t
)
i 1 tBi,n (t) n 1 Bi1,n1(t)
Bi,n
(t)
(1
n
i
) 1
计算机图形学
Bezier曲线的性质
n2
c.)二阶导矢 P(t) n(n 1) (Pi2 2Pi1 Pi )Bi,n2 (t) i0
当t=0时,P"(0) n(n 1)(P2 2P1 P0 )
当t=1时,P" (1) n(n 1)(Pn 2Pn1 Pn2 )
上式表明:2阶导矢只与相邻的3个顶点有关,事实上,
A([P(t)] A n Pi Bi,n (t) A[Pi ]Bi,n(t)
i0
即在仿射变换下,的形式不变。
计算机图形学
3.2.2 Bezier曲线的递推(de Casteljau)算法
计算Bezier曲线上的点,可用Bezier曲线方程,但使
用de Casteljau提出的递推算法则要简单的多。
如下图所示,设 P0 、P02 、P2 是一条抛物线上顺序三个
不同的点。过 P0和 P2点的两切线交于 P1点,在 P02点的切线
交 P0P1 和 P1P2于 P01和 P11,则如下比例成立:
P0 P01 P01P1
P1P11 P11P2
P01P02 P02 P11
这是所谓抛物线的三切线定理。(示意图见下页)
计算机图形学
Betnstein基函数的性质
(5)递推性。
Bi,n (t) (1 t)Bi,n1 (t) tBi1,n1 (t),
(i 0,1,..., n)
即高一次的Bernstein基函数可由两个低一次的 Bernstein调和函数线性组合而成。因为,
Bi,n (t)
Cni t i (1 t)ni
3.2 Bezier 曲线与曲面
计算机图形学
Bezier曲线的定义和性质
1.定义 给定空间n+1个点的位置矢量Pi(i=0,1,2,…,
n),则Bezier曲线可定义为:
计算机图形学
Bezier曲线的定义和性质 其中,Pi构成该Bezier曲线的特征多边形, Bi,n(t)是n次Bernstein基函数:
计算机图形学
Bezier曲线几何作图法
P02
P1
P01 P0
P11
P12 P2
P21
P03 P(1/ 3) P3
0 1/3
1
图3.1.12 几何作图法求Bezier曲线 上一点(n=3,t=1/4)
计算机图形学
3.2.3 Bezier曲线的拼接
几何设计中,一条Bezier曲线往往难以描述复杂的 曲线形状。这是由于增加由于特征多边形的顶点数, 会引起Bezier曲线次数的提高,而高次多项式又会带来 计算上的困难,实际使用中,一般不超过10次。所以 有时采用分段设计,然后将各段曲线相互连接起来, 并在接合处保持一定的连续条件。下面讨论两段Bezier 曲线达到不同阶几何连续的条件。
0=1, 0!=1
计算机图形学
Betnstein基函数的性质
(1)正性
0 t 0,1 Bi,n (t) 0 t (0,1),
(2)端点性质
i 1,2,, n 1;
计算机图形学
Betnstein基函数的性质
(3)权性
n
Bi,n (t) 1 t (0,1)
i0
由二项式定理可知:
n
n
义:
k Pi
k
P 1 i1
k1Pi
P P 例如: 0 i
i 1Pi 0Pi1 0Pi Pi1 Pi
2Pi 1Pi1 1Pi Pi2 2Pi1 Pi
计算机图形学
Байду номын сангаас
Bezier曲线的性质
(2)对称性。由控制顶点 Pi* Pni ,(i 0,1,..., n), 构造出的新 Bezier曲线,与原Bezier曲线形状相同,走向相反。因
n 1 n
(Pn1
Pn2 ) (Pn Pn Pn1 3
Pn 1 )
计算机图形学
Bezier曲线的性质
d.)k阶导函数的差分表示
n次Bezier曲线的k阶导数可用差分公式为:
Pk
(t)
(n
n! k)!
nk i0
k
Pi Bi,nk
(t)
t [0,1]
其中高阶向前差分矢量由低阶向前差分矢量递推地定
Q0
P(t)
b1
Q1
Pn-2 b2
Q2
Q(t)
图3.1.13 Bezier曲线的拼接
计算机图形学
Bezier曲线的拼接
(1)要使它们达到G0连续的充要条件是:Pn= Q0;
(2)要使它们达到G1连续的充要条件是:Pn-1,Pn=Q,Q1三 点共线,即:b1 an ( 0)
(3)要使它们达到G2连续的充要条件是:在G1连续的条件下,