35
Bézier Bézier 曲曲曲曲 曲曲曲曲

Bézier 曲线曲面

  • Upload
    durin

  • View
    239

  • Download
    10

Embed Size (px)

DESCRIPTION

Bézier 曲线曲面. ☆ Bézier 曲线曲面 ● Bernstein 基函数 ● Bézier 曲线定义 ● Bézier 曲线生成 ● Bézier 曲线分割 ● Bézier 曲线逼近 ● Bézier 曲线拼接 ● Bézier 曲线升阶 ● Bézier 曲面定义 ● Bézier 曲面控制. Bézier 曲线曲面. 插值曲线的共同特点是: 最终生成的曲线通过所有给定的“型值点” 。这带来了两个问题: 在实际使用中, 初始型值点往往是不精确 的,并且有时仅仅完全为了外观上的考虑,这样一点一点地插值计算是很不合算的; - PowerPoint PPT Presentation

Citation preview

BézierBézier 曲线曲面曲线曲面

• 插值曲线的共同特点是:插值曲线的共同特点是:最终生成的曲线通过所有给定的最终生成的曲线通过所有给定的“型值点”“型值点”。这带来了两个问题:。这带来了两个问题:– 在实际使用中,在实际使用中,初始型值点往往是不精确初始型值点往往是不精确的,并且有时的,并且有时

仅仅完全为了外观上的考虑,这样一点一点地插值计算仅仅完全为了外观上的考虑,这样一点一点地插值计算是很不合算的;是很不合算的;

– 另外,另外,插值曲线不具有局部性插值曲线不具有局部性,无法使设计和修改结果,无法使设计和修改结果灵活直观地得到反映。灵活直观地得到反映。

BézierBézier 曲线曲面曲线曲面

• 法国工程师法国工程师 Pierre BézierPierre Bézier 在雷诺在雷诺 ((RenRenaultault)) 汽车公司使用样条逼近方法来设汽车公司使用样条逼近方法来设计汽车。计汽车。

• BézierBézier 样条有很多性质使得在曲线和样条有很多性质使得在曲线和曲面设计中有更好的作用且更方便,曲面设计中有更好的作用且更方便,也更容易实现。也更容易实现。

• 基于这些原因,基于这些原因, BézierBézier 样条在大多数样条在大多数图形系统相应的图形包中都有广泛的图形系统相应的图形包中都有广泛的应用。应用。

Bézier曲线的性质BBéézierzier曲线的性质曲线的性质

Bézier曲线的定义BBéézierzier曲线的定义曲线的定义

Bézier曲线离散生成BBéézierzier曲线离散生成曲线离散生成

Bézier曲线的拼接BBéézierzier曲线的拼接曲线的拼接

Bézier曲面的性质BBéézierzier曲面的性质曲面的性质

Bézier曲面的定义BBéézierzier曲面的定义曲面的定义

Bézier曲面离散与分割BBéézierzier曲面离散与分割曲面离散与分割

Bézier曲面的拼接BBéézierzier曲面的拼接曲面的拼接

Bézier曲线的升降阶BBéézierzier曲线的升降阶曲线的升降阶

Bernstein基函数BernsteinBernstein基函数基函数

Bézier曲线的性质BBéézierzier曲线的性质曲线的性质

Bézier曲线的定义BBéézierzier曲线的定义曲线的定义

Bézier曲线离散生成BBéézierzier曲线离散生成曲线离散生成

Bézier曲线的拼接BBéézierzier曲线的拼接曲线的拼接

Bézier曲面的性质BBéézierzier曲面的性质曲面的性质

Bézier曲面的定义BBéézierzier曲面的定义曲面的定义

Bézier曲面离散与分割BBéézierzier曲面离散与分割曲面离散与分割

Bézier曲面的拼接BBéézierzier曲面的拼接曲面的拼接

Bézier曲线的升降阶BBéézierzier曲线的升降阶曲线的升降阶

Bernstein基函数BernsteinBernstein基函数基函数

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BernsteinBernstein 基函数基函数• nn 次次 BernsteinBernstein 基函数多项式形式:基函数多项式形式:

BEZBEZi,ni,n((uu)=)=CC((nn,,ii))uuii(1-(1-uu))n-in-i ,, 其中:其中: CC((nn,,ii)=)=nn!/[!/[ii!(!(nn--ii)!] ()!] (ii=0,1,=0,1,…,…,nn))

– 非负性:非负性:• BEZBEZi,ni,n((uu)≥0 ()≥0 (ii=0,1,=0,1,…,…,nn));; uu (0,1)∈(0,1)∈ 时时,, 0< 0< BEZBEZi,ni,n((uu) <1) <1

– 权性:权性:– 对称性:对称性:

• BEZBEZi,ni,n((uu)=)=BEZBEZn-i,nn-i,n(1-(1-uu),(),(ii=0,1,=0,1,…,…,nn))

– 最大值:最大值:• 在区间在区间 [0,1][0,1] 内,内, BEZBEZi,ni,n((uu)()(ii=0,1,=0,1,…,…,nn)) 在在 uu==ii//nn处取得最大值处取得最大值。。

1,0 ,10

,

uuBEZn

ini

☆Bézier曲线曲面● Bernstein基函数 ◘ 基函数升降阶 ◘ 导数和积分● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BernsteinBernstein 基函数升降基函数升降阶阶– 降阶公式:降阶公式: BEZBEZi,ni,n((uu)=(1-)=(1-uu))BEZBEZi,n-1i,n-1((uu)+)+uBEZuBEZi-1,n-1i-1,n-1((uu))

((ii=0,1,=0,1,…,…,nn))

一个一个 nn 次次 BernsteinBernstein 基函数能表示成两个基函数能表示成两个nn-1-1 次基函数的线性和。次基函数的线性和。

– 升阶公式:升阶公式:

即:一个即:一个 nn 次次 BernsteinBernstein 基函数能表示成基函数能表示成两个两个 nn+1+1 次基函数的线性和。次基函数的线性和。

ni

uBEZn

inuBEZninBEZ ninini

,,1,01

111

1,11,1,

☆Bézier曲线曲面● Bernstein基函数 ◘ 基函数升降阶 ◘ 导数和积分● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BernsteinBernstein 基函数导数和积分基函数导数和积分– 导数:导数:

• 对对 ii=0,1,2,…,=0,1,2,…,nn ,, BEZBEZ’’

i,ni,n((uu)=)=nn[[BEZBEZi-1,n-1i-1,n-1((uu)-)-BEZBEZi,n-1i,n-1((uu)])]

– [0,1][0,1] 区间积分:区间积分:

– 线性无关性:线性无关性:• {{BEZBEZi,ni,n((uu)})}ii((ii=0,1,2,…,=0,1,2,…,nn)) 是是 nn 次多项式空次多项式空间的一组线性无关的基函数,间的一组线性无关的基函数,

• 任何一个任何一个 nn 次多项式都可表示成它们的线次多项式都可表示成它们的线性组合。性组合。

1

0 , 11,,1,0n

niduuBEZ ni

☆Bézier曲线曲面● Bernstein基函数 ◘ 基函数升降阶 ◘ 导数和积分● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线定义曲线定义• 一般,一般, BézierBézier 曲线段可拟合任何数目的控制点。曲线段可拟合任何数目的控制点。

– BézierBézier 曲线段曲线段逼近逼近 这些控制点,且它们的相关位置这些控制点,且它们的相关位置决定了决定了 BézierBézier 多项式的次数。多项式的次数。

• 类似插值样条,类似插值样条, BézierBézier 曲线可以由曲线可以由给定边界条件给定边界条件、、特征特征矩阵矩阵或或混合函数混合函数决定。决定。– 对一般对一般 BézierBézier 曲线,最方便的是混合函数形式。曲线,最方便的是混合函数形式。

• 假设给出假设给出 nn+1+1 个控制点位置:个控制点位置: PPkk=(=(xxkk,,yykk,,zzkk)) , , ((kk=0,1,2,…,=0,1,2,…,nn)) 。。 这些坐标点混合产生下列位置向量这些坐标点混合产生下列位置向量 PP((uu)) ,用来描述,用来描述 PP00和和 PPnn 间的逼近间的逼近 BézierBézier 多项式函数的路径。多项式函数的路径。

混合函数混合函数 BEZBEZk,nk,n((uu)) 是是 BernsteinBernstein 多项式。多项式。 10 ,

0,

uuBEZPuPn

knkk

PP((uu)=)=GGBEZBEZ··MMBEZBEZ··UU

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义 ◘ 曲线递归定义 ◘ 1曲线性质 ◘ 2曲线性质 ◘ 3曲线性质 ◘ 4曲线性质● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线的递归定曲线的递归定义义• 利用利用 BernsteinBernstein 基函数的降基函数的降 (( 升升 )) 阶公式,阶公式,得出得出 BézierBézier 曲曲

线上点的坐标位置的有效方法是使用线上点的坐标位置的有效方法是使用递归计算递归计算。。– 用用递归计算递归计算定义定义 BézierBézier 混合函数:混合函数:

BEZBEZk,nk,n((uu)=(1-)=(1-uu))BEZBEZk,n-1k,n-1((uu)+)+uBEZuBEZk-1,n-1k-1,n-1((uu)) 。。• 其中其中 , , BEZBEZk,kk,k((uu)=)=uukk, , BEZBEZ0,k0,k((uu)=(1-)=(1-uu))kk 。。

• BézierBézier 多项式次数要比控制点个数小多项式次数要比控制点个数小 11 ::– 三控制点生成抛物线;三控制点生成抛物线;– 四点生成三次曲线;四点生成三次曲线;– 依次类推。依次类推。– 但对某些控制点布局,得到退化但对某些控制点布局,得到退化 BézierBézier 多项式。多项式。

• 三个共线控制点生成了一个直线段的三个共线控制点生成了一个直线段的 BézierBézier 曲线,曲线,• 由具有相同坐标控制点生成的由具有相同坐标控制点生成的 BézierBézier““ 曲线”是曲线”是

一个点。一个点。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义 ◘ 曲线递归定义 ◘ 1曲线性质 ◘ 2曲线性质 ◘ 3曲线性质 ◘ 4曲线性质● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线性质曲线性质(1)(1)

• 由由 BézierBézier 曲线定义:曲线定义:– 一条一条 nn 次次 BézierBézier 曲线被表示成它的曲线被表示成它的 nn+1+1 个控制顶点个控制顶点的的

加权和,权是加权和,权是 BernsteinBernstein 基函数。基函数。– 端点位置:端点位置: BézierBézier 曲线以曲线以 PP00 为起点为起点,以,以 PPnn 为终点为终点,即:,即: PP(0)=(0)=PP00 ,, PP(1)=(1)=PPnn 。。– 端点切矢量:端点切矢量: BézierBézier 曲线曲线在起点和终点处分别与控制在起点和终点处分别与控制

多边形的第一条边和最后一条边相切多边形的第一条边和最后一条边相切 ,它在两端点的,它在两端点的切矢量分别为:切矢量分别为:

PP’’(0)=(0)=nn((PP11--PP00)) ,, PP’’(1)=(1)=nn((PPnn--PPn-1n-1)) 。。– 对称性:对称性:如果保持全部控制点位置不变,但次序颠倒,如果保持全部控制点位置不变,但次序颠倒,

即即 PPkk 变为变为 PPn-In-I ,则,则 BézierBézier 曲线形状不变,但参数变化曲线形状不变,但参数变化方向相反,即:方向相反,即:

1,0

110 0

,,0

,

u

uBEZPuBEZPuBEZPn

k

n

knkknknkn

n

knkkn

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义 ◘ 曲线递归定义 ◘ 1曲线性质 ◘ 2曲线性质 ◘ 3曲线性质 ◘ 4曲线性质● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线性质曲线性质(2)(2)

• 仿射不变性:仿射不变性:某些几何性质不随坐标变换而变化某些几何性质不随坐标变换而变化的性质。的性质。– 这些几何性质包括曲线的形状、曲率、挠率等。这些几何性质包括曲线的形状、曲率、挠率等。– 仿射不变性还表现在:对于任意仿射变换仿射不变性还表现在:对于任意仿射变换 AA ,,曲线曲线

的表示形式不变的表示形式不变。即:。即:

– 这意味着:这意味着:对对 BézierBézier 曲线的几何变换只要作用于其曲线的几何变换只要作用于其控制顶点。控制顶点。

• 凸包性:凸包性: BézierBézier 曲线位于其控制顶点曲线位于其控制顶点 {{PPkk}(}(kk=0,1,2,…,=0,1,2,…,nn))的凸包之内。的凸包之内。– 凸包性将曲线限制在一定的范围之内,使曲线的形状凸包性将曲线限制在一定的范围之内,使曲线的形状

控制更加方便。控制更加方便。• 如:二次如:二次 BézierBézier 曲线的三个控制顶点落于一张平曲线的三个控制顶点落于一张平

面之内,那么, 二次面之内,那么, 二次 BézierBézier 曲线必为平面曲线。曲线必为平面曲线。

n

knkn

n

knkk uBEZPAuBEZPAuPA

0,

0,

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义 ◘ 曲线递归定义 ◘ 1曲线性质 ◘ 2曲线性质 ◘ 3曲线性质 ◘ 4曲线性质● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线性质曲线性质(3)(3)

• 直线再生性:直线再生性:– 若控制顶点若控制顶点 PP00,,PP11,,PP22,…,,…,PPnn 落于一条直线上,落于一条直线上,

• 由凸包性可知:该由凸包性可知:该 BézierBézier 曲线必为一条直线。曲线必为一条直线。• 平面曲线的保型性:平面曲线的保型性:

– 假如假如 BézierBézier 曲线的控制顶点曲线的控制顶点 {{PPkk}(}(kk=0,1,2,…,=0,1,2,…,nn)) 位于位于一张平面之内,则该一张平面之内,则该 BézierBézier 曲线是平面曲线,它具曲线是平面曲线,它具有两个性质:有两个性质:

• 保凸性:保凸性:如果其控制多边形是凸的,则该如果其控制多边形是凸的,则该 BézierBézier曲线也是凸的。曲线也是凸的。

• 变差缩减性:变差缩减性:平面内任一直线与平面内任一直线与 BézierBézier 曲线的交曲线的交点数不多于该直线与点数不多于该直线与 BézierBézier 曲线控制多边形的交曲线控制多边形的交点数目。点数目。

– 这一性质说明这一性质说明 BézierBézier 曲线比其控制多边形波曲线比其控制多边形波动小,更光顺。动小,更光顺。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义 ◘ 曲线递归定义 ◘ 1曲线性质 ◘ 2曲线性质 ◘ 3曲线性质 ◘ 4曲线性质● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线性质曲线性质(4)(4)

• 拟局部性:拟局部性:– 局部性局部性是指移动一个控制顶点,它只影响曲线的某个是指移动一个控制顶点,它只影响曲线的某个

局部;局部;– 拟局部性拟局部性是指当移动一个控制顶点是指当移动一个控制顶点 PPkk 时,对应参数时,对应参数 uu

==kk//nn 的曲线上的点变动最大,远离的曲线上的点变动最大,远离 uu==kk//nn 的曲线点变的曲线点变动越来越小。动越来越小。

– BézierBézier 曲线不具备曲线不具备局部性局部性,但它具备,但它具备拟局部性拟局部性。。• 也可以引入另外的参数来调整也可以引入另外的参数来调整 BézierBézier 曲线的“张曲线的“张

力”和“偏离”。力”和“偏离”。

BézierBézier 曲线拟局部性曲线拟局部性

PPkk+1+1

PPkk

PPkk--11 PPkk+2+2

PPkk

PPkk+1+1

PPkk

PPkk--11 PPkk+2+2

PPkk

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义 ◘ 曲线递归定义 ◘ 1曲线性质 ◘ 2曲线性质 ◘ 3曲线性质 ◘ 4曲线性质● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线的交互生成曲线的交互生成• 控制多边形大致勾画控制多边形大致勾画 BézierBézier 曲线的形状,要改变曲线只曲线的形状,要改变曲线只

要改变顶点的位置。要改变顶点的位置。• BézierBézier 曲线上除两端点外所有的点都与控制多边形曲线上除两端点外所有的点都与控制多边形

的全部顶点有关。的全部顶点有关。– 可以控制多边形作为曲线输入与交互的手段。可以控制多边形作为曲线输入与交互的手段。

00 PP

2P

31 PP

10' 0 PPnP

23' 1 PPnP

1P

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线离散生成方法曲线离散生成方法• 德卡斯特里奥德卡斯特里奥 ((de Casteljaude Casteljau)) 算法描述了从参数算法描述了从参数 uu 计算计算 nn

次次 BézierBézier 曲线型值点曲线型值点 PP((uu)) 的过程:的过程:

PP 3300 =P(u)=P(u)

型值点型值点PP 22

00

PP 2211

PP 0000

PP 0011

PP 0033

PP 0022

PP 1122

PP 1111

PP 1100

1-u1-u

uu

r=0r=0 r=3r=3r=2r=2r=1r=1

nrrniuPPu

PP r

iri

riri ,2,1,,,2,1,0

10

11

1,

nPuP 0• 可以证明曲线上的型值点为:可以证明曲线上的型值点为:

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线离散生成过程曲线离散生成过程• 图为三次图为三次 BézierBézier 曲线在曲线在某个某个 uu 值值下计算过程。下计算过程。 ((uu 的变化生成多个离散型值点的变化生成多个离散型值点 ; ; rr==nn+1+1 ;; ))

– 对应对应 rr=0=0 的顶点是曲线的控制点;的顶点是曲线的控制点;– 当当 rr 不断增加时,对应的顶点数递减不断增加时,对应的顶点数递减直到直到 rr=3=3 时只剩下时只剩下

一个顶点,即为所求的型值点。一个顶点,即为所求的型值点。– 所有顶点构成一个直角三角形,所有顶点构成一个直角三角形,– 在在 rr=1,2,3=1,2,3 各列中的每个点都有两个箭头指向它,代各列中的每个点都有两个箭头指向它,代

表该点是两箭头始点的线性组合,箭头上标注的代表该点是两箭头始点的线性组合,箭头上标注的代表权值。表权值。

PP3300==P(u)P(u)

型值点型值点

PP2200

PP2211

PP0000

PP0011

PP0033

PP0022

PP1122

PP1111

PP1100

11--uu

uu

r=0r=0 r=3r=3r=2r=2r=1r=1

PP3300==P(u)P(u)

型值点型值点

PP3300==P(u)P(u)PP3300PP3300==P(u)P(u)

型值点型值点

PP2200PP2200PP2200PP2200

PP2211PP2211PP2211PP2211

PP0000

PP0011

PP0033

PP0022

PP0000PP0000PP0000

PP0011PP0011PP0011

PP0033PP0033PP0033

PP0022PP0022PP0022

PP1122PP1122PP1122PP1122

PP1111PP1111PP1111PP1111

PP1100

11--uu

uuPP11

00PP1100PP1100

11--uu

uu

r=0r=0 r=3r=3r=2r=2r=1r=1

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线的绘制生曲线的绘制生成成• 下图为三次下图为三次 BézierBézier 曲线在曲线在某个某个 uu 值值 ((uu 的变化生成多个离的变化生成多个离散型值点散型值点 )) 下的作图过程。下的作图过程。

三次三次 BézierBézier 曲线作图过程曲线作图过程

u:1-uu:1-u

00P

01P

02P

03P

10P

11P

12P

20P

21P

ruPP 30

kuPP 30 iuPP 3

0

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成 ◘ 曲线离散生成 ◘ 离散生成过程 ◘ 曲线绘制生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线的分割曲线的分割• 如果将如果将 BézierBézier 曲线曲线 PP从中间某点分成两段:从中间某点分成两段: QQ 和和 RR 。。

– QQ 和和 RR仍是多项式曲线,可表示成仍是多项式曲线,可表示成 BézierBézier 曲线的形式。曲线的形式。– 可用分割定理来求新的曲线可用分割定理来求新的曲线 QQ 和和 RR 的控制顶点。的控制顶点。

• 分割定理:分割定理:从参数从参数 uu’’ (0,1)∈(0,1)∈ 处将处将 BézierBézier 曲线曲线

分成两段:分成两段: QQ :: RR ::

10 ,0

,

uuBEZPuPn

knkk

''

, ,0 ,0

uuuuBEZPuP

knk

i

1, ,1

''

, uuuuuBEZPuP

knk

ini

00P

01P

02P

03P

10P

12P

20P

21P '3

0 uPP

'u0 1

Q

Q

R

R00P

01P

02P

03P

10P

12P

20P

21P '3

0 uPP

'u0 1

Q

Q

R

R

• 分割定理说明:给定任一分割定理说明:给定任一uu’’ (0,1)∈(0,1)∈ ,, PP((uu’’)) 将将 BézierBézier曲线分为两段,两段曲线曲线分为两段,两段曲线仍然可以表示成仍然可以表示成 BézierBézier 曲曲线形式,它们的控制顶点线形式,它们的控制顶点由由 de Casteljaude Casteljau 算法产生。算法产生。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割 ◘ 曲线分割示例● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

P 30P 2

0

P 21

P 00

P 01

P 03

P 02

P 12

P 11

P 10

1-u

u

BézierBézier 曲线分割示例曲线分割示例• 若令若令 nn=3=3 ,则,则

– 曲线曲线 QQ 的控制顶点的控制顶点 {{PP00ii}} 构成直角三角形的水平边;构成直角三角形的水平边;

– 曲线曲线 RR 的控制顶点的控制顶点 {{PPiin-in-i}} 构成直角三角形的斜边;构成直角三角形的斜边;

– 直角三角形的垂直边由直角三角形的垂直边由原曲线的控制顶点构成原曲线的控制顶点构成。。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割 ◘ 曲线分割示例● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线的逼近曲线的逼近• 三次三次 BézierBézier 曲线可用矩阵表示为:曲线可用矩阵表示为:

• 由三次由三次 BézierBézier 曲线的曲线的 CasteljauCasteljau 算法的几何意义图算法的几何意义图 (( 作图作图过程过程 )) 可看出:可看出:曲线曲线 QQ(( 或或 RR)) 的控制多边形较曲线的控制多边形较曲线 PP 的的控制多边形更靠近曲线控制多边形更靠近曲线,,这提供一种新的离散生成这提供一种新的离散生成 BézieBézierr 曲线的算法。曲线的算法。– 如果曲线与其控制多边形的距离小于给定的逼近误差,如果曲线与其控制多边形的距离小于给定的逼近误差,

则显示控制多边形作为对则显示控制多边形作为对 BézierBézier 曲线的近似;曲线的近似;– 否则,按分割定理将曲线一分为二否则,按分割定理将曲线一分为二 (( 可取可取 uu’’=1/2)=1/2) ,,

对新生成的两线段重复上述过程,直至结束。对新生成的两线段重复上述过程,直至结束。– 只要所置误差充分小,就能保证显示结果与原曲线充只要所置误差充分小,就能保证显示结果与原曲线充

分逼近。分逼近。

3

23210

1

1000363036301331

uuu

PPPPuP

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近 ◘ 逼近误差控制● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线逼近误差控曲线逼近误差控制制• 一般来说,计算控制多边形与曲线之间的距离很麻烦,一般来说,计算控制多边形与曲线之间的距离很麻烦,

– 由由 BézierBézier 曲线的凸包性可知:曲线位于控制顶点的凸曲线的凸包性可知:曲线位于控制顶点的凸包之内。包之内。

• 曲线与控制多边形之间的距离必然小于曲线与控制多边形之间的距离必然小于 PPii 到直线到直线PP00PPnn 的距离的距离 dd((PPii,,PP00PPnn)) 的最大值。的最大值。

– 可用可用 PPii到直线到直线 PP00PPnn 的距离的距离 d(d(PPii,,PP00PPnn)) 的最大值来代替的最大值来代替曲线到多边形的距离,从而简化计算。曲线到多边形的距离,从而简化计算。

PP22PP11

PP00 PP33

d(Pd(P22,P,P00PP33))d(Pd(P11,P,P00PP33))

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近 ◘ 逼近误差控制● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

PP22

PP11 PP44

封闭封闭 BézierBézier 曲线曲线PP00= P= P55

BézierBézier 曲线拼接:封闭和重合曲线拼接:封闭和重合• 封闭封闭 BézierBézier 曲线曲线由重合第一个和最后一个控制点位置来由重合第一个和最后一个控制点位置来

生成。生成。• 多个控制点位于同一位置多个控制点位于同一位置也会给那个位置以更多的权。也会给那个位置以更多的权。

– 一个坐标位置被二个控制点占用,所产生的曲线更接一个坐标位置被二个控制点占用,所产生的曲线更接近于这个位置。近于这个位置。

PP33

BézierBézier 曲线更靠近重合点位置曲线更靠近重合点位置

PP33

PP00 PP44

PP11= P= P22

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线拼接:曲线拼接: 00 阶连续阶连续• 可以用可以用任何数目的控制点任何数目的控制点拟合出一条拟合出一条 BézierBézier 曲线,但这需曲线,但这需

要计算更高次的多项式。要计算更高次的多项式。– 复杂曲线复杂曲线可以由可以由几个较低次数几个较低次数的的 BézierBézier 曲线段连接而成。曲线段连接而成。– 较小段连接也会更好地控制小区域内的曲线形状。较小段连接也会更好地控制小区域内的曲线形状。– BézierBézier 曲线通过端点,较容易拼凑曲线段曲线通过端点,较容易拼凑曲线段 (0(0 阶连续阶连续 )) 。。

使使 PP22 和 和 PP00’’ 重合,可使两重合,可使两 BézierBézier 曲线段间曲线段间 00 阶连续阶连续

PP22

PP11

PP00

PP00’’

PP22’’

PP33’’

PP11’’

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线拼接:曲线拼接: 11 阶连阶连续续• BézierBézier 曲线在端点处的切向量落在端点和相邻点的连线上。曲线在端点处的切向量落在端点和相邻点的连线上。

– 新段中的控制点新段中的控制点 PP00′′ 和和 PP11

′′ 与与前段中的控制点前段中的控制点 PPn-1n-1 和和 PPnn 在在同一同一条直线上条直线上可得到曲线段之间的可得到曲线段之间的一阶连续性一阶连续性。。

– 如果两个曲线段如果两个曲线段有相同数目的控制点有相同数目的控制点,则选择,则选择前段中最后一前段中最后一个控制点个控制点为为新段中的第一个控制点新段中的第一个控制点,,新段中的第二个控制点新段中的第二个控制点定位成:定位成:

((PPnn++PPnn--PPn-1n-1))

这样,这样,三个控制点共线三个控制点共线且有且有相同的间隔相同的间隔,就可得到,就可得到 CC11连续连续。。

使使 PP22 和和 PP00’’ 重合且重合且 PP11,,PP22,,PP11

’’ 共线,可使两共线,可使两 BézierBézier 曲线段间曲线段间 11 阶阶连续连续

PP00’’

PP22’’

PP33’’

PP11’’

PP22

PP11

PP00

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线拼接:曲线拼接: 22 阶连阶连续续• 让让新段中的第三个控制点用前段最后三个控制点定位成:新段中的第三个控制点用前段最后三个控制点定位成:

PPn-2n-2+4(+4(PPnn--PPn-1n-1)) ,,可在两个可在两个 BézierBézier 曲线段间得到曲线段间得到 CC22连续连续。。

使使 PP22 和 和 PP00’’ 重合且重合且 PP11,,PP22,,PP11

’’ 共线,可使两共线,可使两 BézierBézier 曲线段间曲线段间 11 阶阶连续连续

PP00’’

PP22’’

PP33’’

PP11’’

PP22

PP11

PP00

• BézierBézier 曲线段并不一定需要二阶连续性。曲线段并不一定需要二阶连续性。– 尤其是在三次曲线中不需要,因为每段曲线仅有四尤其是在三次曲线中不需要,因为每段曲线仅有四

个控制点。个控制点。– 在这种情况下,二阶连续定位了前三个点的位置,在这种情况下,二阶连续定位了前三个点的位置,

只剩一个控制点可以用来调整曲线段形状。只剩一个控制点可以用来调整曲线段形状。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接 ◘ 0阶连续拼接 ◘ 1阶连续拼接 ◘ 2阶连续拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线升降阶曲线升降阶• BézierBézier 曲线的升阶就是曲线的升阶就是保持曲线的形状与定向不变,增保持曲线的形状与定向不变,增

加定义它的控制顶点数。加定义它的控制顶点数。– BézierBézier 曲线是参数多项式曲线段,具有整体性质。曲线是参数多项式曲线段,具有整体性质。

• 在某些情况下,可能无论怎样移动调整顶点都达在某些情况下,可能无论怎样移动调整顶点都达不到理想形状。不到理想形状。

– 显然是显然是曲线的“刚性”有余而“柔性”不足曲线的“刚性”有余而“柔性”不足。。• 升阶可升阶可降低其“刚性”降低其“刚性”,,增加其“柔性”增加其“柔性”::

– 增加控制顶点增加控制顶点,就增加了对曲线进行形状控,就增加了对曲线进行形状控制的潜在灵活性。制的潜在灵活性。

– 升阶虽然增加升阶虽然增加 BézierBézier 曲线的控制顶点,因曲线形状曲线的控制顶点,因曲线形状及定向保持不变,所以,曲线的实际次数不变。及定向保持不变,所以,曲线的实际次数不变。

• 但但一旦移动生成的新控制顶点,曲线形状就发生一旦移动生成的新控制顶点,曲线形状就发生变化,曲线的次数就升高至由顶点数决定的次数。变化,曲线的次数就升高至由顶点数决定的次数。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶 ◘ 升降阶实现● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲线升降阶实曲线升降阶实现现• 升阶的新顶点由以参数值升阶的新顶点由以参数值 λλ==jj/(/(nn+1)+1) 按分段线性插值从按分段线性插值从老控制多边形得出:老控制多边形得出:

PP’’ii=(1-=(1-λλ))PPii++λPλPi-1i-1((ii=0,1,2,…,=0,1,2,…,nn+1)+1) ,, PP-1-1==PPn+1n+1=0,=0,

– 且新控制多边形比老控制多边形更靠近曲线。且新控制多边形比老控制多边形更靠近曲线。• BézierBézier 曲线的升阶可无休止地进行下去,从而得到一个曲线的升阶可无休止地进行下去,从而得到一个

控制多边形系列,它们都定义同一条控制多边形系列,它们都定义同一条 BézierBézier 曲线。曲线。– 多边形系列将收敛到一个极限,就是所定义的该曲多边形系列将收敛到一个极限,就是所定义的该曲

线。线。• 曲线的降阶是升阶的逆问题:一条曲线的降阶是升阶的逆问题:一条 nn 次次 BézierBézier 曲线能否曲线能否

表示成表示成 nn-1-1 次。次。– 一般,准确地降阶是不可能的,仅能看作是一条曲一般,准确地降阶是不可能的,仅能看作是一条曲

线被较低次的曲线逼近。线被较低次的曲线逼近。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶 ◘ 升降阶实现● Bézier曲面定义● Bézier曲面控制

BézierBézier 曲面定义曲面定义• 可使用两组正交的可使用两组正交的 BézierBézier 曲线曲线

来设计由控制点网格描述的物来设计由控制点网格描述的物体表面。体表面。

• BézierBézier 曲面的向量函数由曲面的向量函数由 BéziBézierer 混合函数作笛卡尔积。混合函数作笛卡尔积。

• 给定空间给定空间 ((mm+1)×(+1)×(nn+1)+1) 个点的位置个点的位置 PPj,kj,k((jj=0,1,2,…,=0,1,2,…,mm, , kk=0,1,2,…,=0,1,2,…,nn)) ,称如下形式的张量积参数曲面为,称如下形式的张量积参数曲面为 mm××nn 次的次的 BBézierézier 曲面:曲面:

• PPj,kj,k 称为控制顶点,所有的点称为控制顶点,所有的点 PPj,kj,k 构成的空间的一张称为控构成的空间的一张称为控制网格。制网格。

• BEZBEZj,mj,m((uu)) 和和 BEZBEZk,nk,n((vv)) 分别为分别为 uu 、、 vv 方向的方向的 BernsteinBernstein 基函基函数。数。

PP3,03,0

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

PP3,03,0

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

1,0, ,0 0

,,,

vuvBEZuBEZPvuPm

j

n

knkmjkj

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质● Bézier曲面控制

BézierBézier 曲面的角点和边界曲面的角点和边界• 角点位置:角点位置: BézierBézier 曲面的四个角点分别是其曲面的四个角点分别是其控制网格的控制网格的四个角点四个角点。即:。即: PP(0,0)=(0,0)=PP0,00,0 ,, PP(0,1)=(0,1)=PP0,n0,n ;; PP(1,0)=(1,0)=PPm,0m,0 ,, PP(1,1)=(1,1)=PPm,nm,n 。。

• 边界线:边界线: BézierBézier 曲面的四条边界线是曲面的四条边界线是 BézierBézier 曲线:曲线:

10 ,1,

10 ,0,

10 ,1,

10 ,0,

0,,0

0,,0

0,0,

0,0,

vvBEZPvP

vvBEZPvP

uuBEZPuP

uuBEZPuP

n

knkk

n

knkk

m

jmjj

m

jmjj

PP3,03,0

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

PP3,03,0

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质● Bézier曲面控制

BézierBézier 曲面角点性质曲面角点性质• 角点切平面:角点切平面:

– 在角点在角点 PP0,00,0 处曲面的处曲面的 uu 向切矢量和向切矢量和 vv 向切矢量分别为:向切矢量分别为: mm((PP1,01,0--PP0,00,0)) 和和 nn((PP0,10,1--PP0,00,0)) ,, 从而曲面在该点的切平面即为从而曲面在该点的切平面即为 PP0,00,0,,PP1,01,0,,PP0,10,1 三个控制点三个控制点

所确定的平面。所确定的平面。– 曲面在另三个角点处的切平面分别由曲面在另三个角点处的切平面分别由 PPm,0m,0PPm-1,0m-1,0PPm,1m,1, , PP0,n0,n

PP1,n1,nPP0,n-10,n-1, , PPm,nm,nPPm-1,nm-1,nPPm,n-1m,n-1确定。确定。• 角点法矢量:角点法矢量:

– BézierBézier 曲面的四个角点的法矢量分别为:曲面的四个角点的法矢量分别为: mnmn((PP1,01,0--PP0,00,0)×()×(PP0,10,1--PP0,00,0)) ; ; mnmn((PPm,0m,0--PPm-1,0m-1,0)×()×(PPm,1m,1--PPm,0m,0)) ;; mnmn((PP1,n1,n--PP0,n0,n)×()×(PP0,n0,n--PP0,n-10,n-1)) ;; mnmn((PPm,nm,n--PPm-1,nm-1,n)×()×(PPm,nm,n--PPm,n-1m,n-1)) 。。

PP3,03,0

PP0,30,3

PP0,10,1

PP0,00,0

PP0,20,2

PP1,31,3

PP1,11,1

PP1,01,0

PP1,21,2

PP2,32,3

PP2,12,1

PP2,02,0

PP2,22,2PP3,33,3

PP3,13,1

PP3,23,2

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质● Bézier曲面控制

BézierBézier 曲面其它性曲面其它性质质• 凸包性:凸包性: BézierBézier 曲面曲面 PP((uu,,vv)) 位于其控制网格位于其控制网格

顶点的凸包之内。顶点的凸包之内。• 平面再生性:平面再生性:

– 当所有控制顶点落于一张平面内时,当所有控制顶点落于一张平面内时, BézieBézierr 曲面也落于该平面内。曲面也落于该平面内。

• 仿射不变性:仿射不变性:– BézierBézier 曲面的某些几何性质不随坐标变换曲面的某些几何性质不随坐标变换而变化,对于任意仿射变换,曲面的变换而变化,对于任意仿射变换,曲面的变换等价于多其控制顶点做变换。等价于多其控制顶点做变换。

• 拟局部性:拟局部性:– 当修改某一控制顶点时,曲面上距它近的当修改某一控制顶点时,曲面上距它近的点受影响大,距它远的受影响小。点受影响大,距它远的受影响小。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义 ◘ 角点和边界 ◘ 角点性质 ◘ 其它性质● Bézier曲面控制

BézierBézier 曲面离散生成曲面离散生成• 根据根据 BézierBézier 曲面的性质,控制网大致勾画了曲面的性质,控制网大致勾画了 BézierBézier 曲面的曲面的

形状,可以提供用于交互设计应用的便利方法。形状,可以提供用于交互设计应用的便利方法。– 对每个曲面片,选择在对每个曲面片,选择在 xyxy““ 地”平面上的控制点网格,地”平面上的控制点网格,然后根据控制点的子坐标值在地平面上选择高度。然后根据控制点的子坐标值在地平面上选择高度。

– 要改变曲面只需交互地调节顶点的位置。要改变曲面只需交互地调节顶点的位置。• 从参数从参数 ((uu00,,vv00)) 计算计算 BézierBézier 曲面型值点曲面型值点 PP((uu00,,vv00)) 的的 de Casteljade Castelja

uu 算法:算法:

.,,2,1,0;,,2,1;1;,,2,1,0;,,2,1;1

.,,2,1,0;,2,1,0,0,;

,11,0

1,,0

1,,10

,1,0

,,

,

sninsPuPvrnimrPuPu

njmisrPP

srji

srji

srji

srji

jisrji

nmPvuP ,0,000 , 曲面上的型值点为:曲面上的型值点为:

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法

BézierBézier 曲面分割曲面分割• 从参数从参数 ((uu00,,vv00) (0,1)×(0,1)∈) (0,1)×(0,1)∈ ,等参数曲线,等参数曲线 PP((uu00,,vv)) 与与 P(u,vP(u,v00

)) 将将 BézierBézier 曲面分成了四块小的曲面分成了四块小的 BézierBézier 曲面片。曲面片。

m

j

n

knkmj

jminji

m

j

n

knkmj

jimi

m

j

n

knkmj

jnij

m

j

n

knkmj

ji

vuvuvvvBEZ

uuuBEZPvuP

vuvuvvBEZ

uuuBEZPvuP

vuvuvvvBEZ

uuBEZPvuP

vuvuvvBEZ

uuBEZPvuP

0 000

0

0,

0

0,

,,

0 000

0,

0

0,

,0,

0 000

0

0,

0,

,,0

0 000

0,

0,

,0,0

1,1,,,11

,

,01,,,1

,

1,,0,,1

,

,0,0,,,

• 其中,各曲面片的控制顶点由其中,各曲面片的控制顶点由 de Casteljaude Casteljau 算法得到。算法得到。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法

BézierBézier 曲面分割示例曲面分割示例

PP0,00,00,30,3

PP0,00,00,20,2

PP0,00,00,10,1

PP0,00,00,00,0

PP0,00,01,31,3

PP0,00,01,21,2

PP0,00,01,11,1

PP0,00,01,01,0

PP0,00,02,32,3

PP0,00,02,22,2

PP0,00,02,12,1

PP0,00,02,02,0

PP0,00,03,33,3

PP0,00,03,23,2

PP0,00,03,13,1

PP0,00,03,03,0

PP1,01,02,32,3

PP1,01,02,22,2

PP1,01,02,12,1

PP1,01,02,02,0

PP2,02,01,31,3

PP2,02,01,21,2

PP2,02,01,11,1

PP2,02,01,01,0

PP3,03,00,30,3

PP3,03,00,20,2

PP3,03,00,10,1

PP3,03,00,00,0

PP0,30,30,00,0

PP0,20,20,10,1

PP0,10,10,20,2

PP0,30,31,01,0

PP0,20,21,11,1

PP0,10,11,21,2

PP0,30,32,02,0

PP0,20,22,12,1

PP0,10,12,22,2

PP0,30,303,003,0

PP0,20,23,13,1

PP0,10,13,23,2

PP1,31,32,02,0

PP1,21,22,12,1

PP1,11,12,22,2

PP2,32,31,01,0

PP2,22,21,11,1

PP2,12,11,21,2

PP3,33,30,00,0

PP3,23,20,10,1

PP3,13,10,20,2

PP0,00,00,00,0 PP1,01,0

0,00,0 PP2,02,00,00,0 PP3,03,0

0,00,0

PP0,30,30,00,0

PP0,20,20,00,0

PP0,10,10,00,0

PP1,31,30,00,0

PP1,21,20,00,0

PP1,11,10,00,0

PP2,32,30,00,0

PP2,22,20,00,0

PP2,12,10,00,0

PP3,33,30,00,0

PP3,23,20,00,0

PP3,13,10,00,0

PP0,00,00,00,0 PP0,00,0

1,01,0 PP0,00,02,02,0 PP0,00,0

0,00,0PP1,01,02,02,0 PP2,02,0

1,01,0 PP3,03,00,00,0

PP0,30,30,00,0

PP0,20,20,00,0

PP0,10,10,00,0

PP0,30,31,01,0

PP0,20,21,01,0

PP0,10,11,01,0

PP0,30,32,02,0

PP0,20,22,02,0

PP0,10,12,02,0

PP0,30,30,00,0

PP0,20,20,00,0

PP0,10,10,00,0

PP1,31,32,02,0

PP1,21,22,02,0

PP1,11,12,02,0

PP2,32,31,01,0

PP2,22,21,01,0

PP2,12,11,01,0

PP3,33,30,00,0

PP3,23,20,00,0

PP3,13,10,00,0

i=0i=0r=0r=0

i=3i=3r=0r=0

i=2i=2r=1r=1

i=1i=1r=2r=2

i=0i=0r=3r=3

i=0i=0r=2r=2

i=0i=0r=1r=1

PP0,00,00,30,3

PP0,00,00,20,2

PP0,00,00,10,1

PP0,00,00,00,0

PP1,31,30,30,3

PP1,01,00,20,2

PP1,01,00,10,1

PP1,01,00,00,0

PP2,32,30,30,3

PP2,02,00,20,2

PP2,02,00,10,1

PP2,02,00,00,0

PP3,33,30,30,3

PP3,03,00,20,2

PP3,03,00,10,1

PP3,03,00,00,0

PP0,30,30,00,0

PP0,20,20,10,1

PP0,10,10,20,2

PP1,31,30,00,0

PP1,21,20,10,1

PP1,11,10,20,2

PP2,32,30,00,0

PP2,22,20,10,1

PP2,12,10,20,2

PP3,33,30,00,0

PP3,23,20,10,1

PP3,13,10,20,2

j =3,s=0j =3,s=0

j=0,s=0j=0,s=0

j=0,s=1j=0,s=1

j=0,s=2j=0,s=2

j=0,s=3j=0,s=3

j=1,s=2j=1,s=2

j=2,s=1j=2,s=1

vv 向离散向离散 vv 向离散向离散

uu向向离离散散

uu向向离离散散

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法

BézierBézier 曲面逼曲面逼近近• 对于双三次对于双三次 BézierBézier 曲面,矩阵形式为:曲面,矩阵形式为: PP((uu,,vv)=)=UUT T · · MMTT

BEZ BEZ · · GG · ·MMBEZBEZ · · VV ,,– UU=[1,=[1,uu,,uu22,,uu33]]TT ,,– VV=[1,=[1,vv,,vv22,,vv33]]TT

– MMBEZBEZ=[=[BEZBEZ0,30,3((uu),),BEZBEZ1,31,3((uu),),BEZBEZ2,32,3((uu),),BEZBEZ3,33,3((uu)])]TT ,,– GG ={ ={PPj,kj,k}(}(jj,,kk=0,1,2,3)=0,1,2,3)

• BézierBézier 曲面逼近生成的基本思想:曲面逼近生成的基本思想:– 当以两条等参数曲线将当以两条等参数曲线将 BézierBézier 曲面划分成四块小的曲面划分成四块小的

曲面片之后,小曲面片的控制网格与曲面更靠近;曲面片之后,小曲面片的控制网格与曲面更靠近;– 将这种过程一直进行下去,得到越来越密的控制网格,将这种过程一直进行下去,得到越来越密的控制网格,

它们收敛于原曲面。它们收敛于原曲面。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法

BézierBézier 曲面逼近误差控制曲面逼近误差控制• 判断控制网格与曲面的距离是否小于给定的控制误差:判断控制网格与曲面的距离是否小于给定的控制误差:

– 如果是,则显示控制网格作为对如果是,则显示控制网格作为对 BézierBézier 曲面片的近似;曲面片的近似;– 否则,将原控制网格在否则,将原控制网格在 uu 向离散,得到由向离散,得到由 PP((uu00,,vv)) 划分划分

的两张小曲面片;的两张小曲面片;– 再将这张小曲面片在再将这张小曲面片在 vv 向离散,得到四张小曲面片。向离散,得到四张小曲面片。– 对新生成的四个曲面片重复上述过程,直至结束。对新生成的四个曲面片重复上述过程,直至结束。只要只要

所置误差充分小,就能保证显示结果与原曲面充分逼近。所置误差充分小,就能保证显示结果与原曲面充分逼近。• 一般来说,曲面与控制网格间的距离可用下式来计算:一般来说,曲面与控制网格间的距离可用下式来计算: dd==maxmax{({(PPj,kj,k,,SS), ), jj=0,1,…,=0,1,…,mm,,kk=0,1,…,=0,1,…,nn}}

– SS 为与四个角点为与四个角点 PP0,00,0 、、 PPm,0m,0 、、 PP0,n0,n 、、 PPm,nm,n距离最小的平面。距离最小的平面。因此,因此, dd((PPj,kj,k,,SS)) 为控制顶点为控制顶点 PPj,kj,k到到 SS 的距离。的距离。

– 由凸包性可知,由凸包性可知, dd能够用来控制曲面与控制网格之间的能够用来控制曲面与控制网格之间的距离。距离。

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法

BézierBézier 曲面片的拼曲面片的拼接接• BézierBézier 曲面的曲面片可以用边界约束来连接。曲面的曲面片可以用边界约束来连接。• 一般来说,两曲面的光滑拼接是困难的,但两一般来说,两曲面的光滑拼接是困难的,但两 BézierBézier 曲面片曲面片

的的 GCGC11连续存在着简单方法。连续存在着简单方法。– 假如两个假如两个 BézierBézier 曲面片曲面片 PP 和和 QQ 具有相同的次数具有相同的次数 (( 否则,只否则,只

要将低次的边界线升阶就可以要将低次的边界线升阶就可以 )) 形成一个曲面,那么,形成一个曲面,那么,通通过在边界线上建立零阶和一阶连续性可以确保从一个部分过在边界线上建立零阶和一阶连续性可以确保从一个部分平滑转换到另一部分。平滑转换到另一部分。

• 对对零阶连接性零阶连接性只要边界上的控制点匹配就可能获得。只要边界上的控制点匹配就可能获得。– 即:即: PPm,jm,j==QQ0,j0,j ((jj=0,1,…,=0,1,…,mm)) 。。

LL11=CL=CL22LL11

LL22

LL11=CL=CL22LL11

LL22

• 一阶连续性一阶连续性的获得需要的获得需要将跨越边界的控制将跨越边界的控制点安排在一直线上,且这样跨越边界控制点点安排在一直线上,且这样跨越边界控制点形成的共线线段保持一个比例常数形成的共线线段保持一个比例常数。。•或,或,在两曲面间跨越边界共线控制点所形在两曲面间跨越边界共线控制点所形成线段长成线段长 LL11 与线段长与线段长 LL22 之比为常数而得。之比为常数而得。即:即: ((PPm,jm,j--PPm-1,jm-1,j)=)=CC·(·(QQ1,j1,j--PP00,j,j)()(CC>0, >0, jj=0,1,…,=0,1,…,mm))

☆Bézier曲线曲面● Bernstein基函数● Bézier曲线定义● Bézier曲线生成● Bézier曲线分割● Bézier曲线逼近● Bézier曲线拼接● Bézier曲线升阶● Bézier曲面定义● Bézier曲面控制 ◘ 离散生成方法 ◘ 曲面分割方法 ◘ 曲面分割示例 ◘ 曲面逼近方法 ◘ 逼近误差控制 ◘ 曲面拼接方法