计算机图形学10_曲线曲面参数表示的基础知识ppt课件_第1页
计算机图形学10_曲线曲面参数表示的基础知识ppt课件_第2页
计算机图形学10_曲线曲面参数表示的基础知识ppt课件_第3页
计算机图形学10_曲线曲面参数表示的基础知识ppt课件_第4页
计算机图形学10_曲线曲面参数表示的基础知识ppt课件_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、曲线和曲面曲线和曲面1;.23456 1显式显式 普通方式:普通方式: y = f(x) 注:注: x 与与y一一对应,显示方程不能表示封锁和多值曲线。一一对应,显示方程不能表示封锁和多值曲线。 2隐式隐式 普通方式:普通方式:f(x,y) = 0注:注: 易判别某给定点是在曲线上还是曲线某一侧。易判别某给定点是在曲线上还是曲线某一侧。7 非参数表示方式显示和隐式存在如下问题:非参数表示方式显示和隐式存在如下问题: 与坐标有关与坐标有关出现斜率为无穷大的特殊情形出现斜率为无穷大的特殊情形对于非平面曲线,曲面,难于用常系数的非参数化函数表示对于非平面曲线,曲面,难于用常系数的非参数化函数表示不便

2、于计算机处置不便于计算机处置8 参数表示方式优点:参数表示方式优点: 满足几何不变性要求满足几何不变性要求更多自在度参数控制曲线与曲面外形更多自在度参数控制曲线与曲面外形例:二维三次曲线显示表示:例:二维三次曲线显示表示: 二维三次曲线参数表示:二维三次曲线参数表示:32yaxbxcxd321111322222( ),0,1atbtctdP tta tb tc td 3参数参数 普通方式:普通方式: P(t)=x(t),y(t)注:曲线上恣意一点都可表示为给定参数注:曲线上恣意一点都可表示为给定参数t的函数。的函数。9 最简单的参数曲线是直线段,端点为P1、P2的直线段参数方程可表示为: P(

3、t)=P1+(P2-P1)t t0, 1; 圆在计算机图形学中运用非常广泛,其在第一象限内的单位圆弧的非参数显式表示为: 其参数方式可表示为:104 4便于处置斜率为无限大的问题,不会因此而中断计算。便于处置斜率为无限大的问题,不会因此而中断计算。 6 6规格化的参数变量规格化的参数变量t0t0,11,使其相应的几何分量是有界的,而不用用另外,使其相应的几何分量是有界的,而不用用另外的参数去定义其边境。的参数去定义其边境。 5 5参数方程中,代数、几何相关和无关的变量是完全分别的,而且对变量个数不限,参数方程中,代数、几何相关和无关的变量是完全分别的,而且对变量个数不限,从而便于用户把低维空间

4、中的曲线扩展到高维空间去。从而便于用户把低维空间中的曲线扩展到高维空间去。 7易于用矢量和矩阵表示几何分量,简化了计算。基于这些优点,我们在以后将易于用矢量和矩阵表示几何分量,简化了计算。基于这些优点,我们在以后将用参数表达式来讨论曲线问题。用参数表达式来讨论曲线问题。3 3对非参数表示的曲线和曲面进展变化时,必需对一切点进展变化;对参数表对非参数表示的曲线和曲面进展变化时,必需对一切点进展变化;对参数表示的曲线和曲面那么可直接对参数方程变化。示的曲线和曲面那么可直接对参数方程变化。115.1.2 参数样条曲线和曲面的常用术语 在工程设计中,普通多采用低次的参数样条曲线。这是由于高次参数样条曲

5、线在工程设计中,普通多采用低次的参数样条曲线。这是由于高次参数样条曲线计算费时,其数学模型难于建立且性能不稳定,即任何一点的几何信息的变化都有计算费时,其数学模型难于建立且性能不稳定,即任何一点的几何信息的变化都有能够引起曲线外形复杂的变化。能够引起曲线外形复杂的变化。 因此,实践任务中常采用二次或三次参数样条曲线,如:因此,实践任务中常采用二次或三次参数样条曲线,如: 二次参数样条曲线:二次参数样条曲线: P (t) = A0 + A1t + A2t2 三次参数样条曲线:三次参数样条曲线: P (t) = A0 + A1t + A2t2 + A3t3 12为什么选参数t呢,物理上可以把3维空

6、间的曲线了解为一个动点的轨迹,表示位置矢量p随时间变化13曲线上R,Q两点参数分别是t和t+t.当Q趋向R,也就是 t0导数 的方向P(t)就代表了R点的切线方向导数 的大小就可以近似表示P的长度也可以近似表示这一段弧长 S14假设选择弧长假设选择弧长S作为参数,那么作为参数,那么是单位矢量是单位矢量151617T(切矢)、N(主法矢)和B(副法矢)从切面从切面1819 T(切矢)、N(主法矢)和B(副法矢)20插值和逼近统称为拟合。插值和逼近统称为拟合。212223n插值法插值法n抛物线插值抛物线插值(二次插值二次插值):n知在三个互异点知在三个互异点x1,x2,x3的函数值为的函数值为y1

7、,y2,y3,要求构造函数,要求构造函数 (x)=ax2+bx+c,使得使得(x)在在xi处与处与f(x)在在xi处的值相等。处的值相等。2425参数延续性参数延续性零阶参数延续性,记作零阶参数延续性,记作C0C0,指相邻两个曲线段在交点处具有一样的坐标。如下图。,指相邻两个曲线段在交点处具有一样的坐标。如下图。26一阶参数延续性,记作一阶参数延续性,记作C1C1,指相邻两个曲线段在交点处具有一样的一阶导数。,指相邻两个曲线段在交点处具有一样的一阶导数。如下图。如下图。27二阶参数延续性,记作二阶参数延续性,记作C2C2,指相邻两个曲线段在交点处具有一样的一阶和二阶导,指相邻两个曲线段在交点处

8、具有一样的一阶和二阶导数。如下图。数。如下图。2829n二次插值样条曲线的数学表达式二次插值样条曲线的数学表达式 在拟合生成样条曲线的众多方法中,我们首先选择较为简单的二次样条曲线即抛在拟合生成样条曲线的众多方法中,我们首先选择较为简单的二次样条曲线即抛物样条曲线的生成方法作为根本方法,来讨论如何用插值方法生成经过给定离散型值物样条曲线的生成方法作为根本方法,来讨论如何用插值方法生成经过给定离散型值点的样条曲线。点的样条曲线。 由于离散点的要求,我们首先要处理由给定点定义抛物线问题。设有不在同不断线由于离散点的要求,我们首先要处理由给定点定义抛物线问题。设有不在同不断线上的三点:上的三点:P1

9、, P2, P3,如今要求经过该给定的三点定义一条抛物线。如下图。,如今要求经过该给定的三点定义一条抛物线。如下图。 30P1P2P3图图 过三点的二次曲线过三点的二次曲线 假设我们采用矢量表达式来表示参数化的假设我们采用矢量表达式来表示参数化的二次曲线,那么可以把抛物线的表达式写成如二次曲线,那么可以把抛物线的表达式写成如下的普通方式为:下的普通方式为: Pt= A1 + A2t + A3t2 0 t1 (6-1) 抛物线是一条二次曲线,所以表达式中参数抛物线是一条二次曲线,所以表达式中参数t t的最高次数为的最高次数为2 2,同时让参数,同时让参数t t在在0l0l之间取值。之间取值。 这

10、就是说,只需确定了式这就是说,只需确定了式(61)(61)中的三个系数:中的三个系数:A1,A2A1,A2和和A3A3,那么就确定了抛物线,那么就确定了抛物线的表达式,随之抛物线的曲线图形也就可以确定。所以,我们的任务是要经过设定一些的表达式,随之抛物线的曲线图形也就可以确定。所以,我们的任务是要经过设定一些知条件来求出这三个系数。知条件来求出这三个系数。 31 要确定这三个系数要确定这三个系数( (目前尚为未知数目前尚为未知数) ),必需求有三个独立的条件。我们可以给,必需求有三个独立的条件。我们可以给定这三个独立条件为:定这三个独立条件为: 该抛物线过该抛物线过P1,P2,P3三个点,并且

11、:三个点,并且: 抛物线段以抛物线段以P1点为始点。即当参变量点为始点。即当参变量t = 0时,曲线过时,曲线过P1点;抛物线段以点;抛物线段以P3点为点为终点。即当参变量终点。即当参变量t = 1时,曲线过时,曲线过P3点;当参变量点;当参变量t = 0.5时,曲线过时,曲线过P2点。点。 在这三个设定的条件下,构造在这三个设定的条件下,构造的抛物线段如图的抛物线段如图6.36.3所示。所示。 P1P2P3QAP2t=0t=0.5t=1图图6.3 6.3 过过3 3点定义的二次曲线点定义的二次曲线 32 图中的数据是这样的:图中的数据是这样的:A A点为点为P1P3P1P3的中点,的中点,A

12、P2 = P2QAP2 = P2Q,抛物线在,抛物线在P1P1点处与点处与P1QP1Q相相切,在切,在P3P3点处与点处与QP3QP3相切,曲线在相切,曲线在P2P2点处的切矢点处的切矢P2P2与与P1P3P1P3平行。平行。 根据以上设定的条件,可以列出三个方程:根据以上设定的条件,可以列出三个方程: t = 0:P(0)= A1 = P1 t = 1:P(1)= A1A2十十A3 = P3 (6-2) t = 0.5;P(0.5)= A10.5A20.25A3 = P2 解以上三个联立方程:解以上三个联立方程: A1 = P1 P3 = A1 + A2 + A3 = P1A2 + A3 A

13、2 = P3P1A3 P2 = A1 + 0.5A2 + 0.25A3 33 亦即:亦即:4P2 = 4A1 + 2A2 + A3 = 4 P1 + 2(P3P1A3) + A3 = 2P1 + 2P3 A3 A3 = 2P1 + 2P3 4P2 以上式回代到以上式回代到 A2 = P3 P1 A3中,得:中,得: A2 = 4P2 P3 3P1 所以,经过解联立方程,得到的三个系数所以,经过解联立方程,得到的三个系数A1,A2,A3分别为:分别为: A1 = P1 A2 = 4P2P33P1 (6-3) A3 = 2P12P34P2 把求出的该三个系数的值,代入到抛物线的表达式把求出的该三个

14、系数的值,代入到抛物线的表达式(6-1)(6-1)中,可得:中,可得: 34 P(t)= A1 + A2t + A3t2 = P1 +(4P2 P3 3P1)t + (2P12P3 4P2)t2 = (2t2 3t + 1)P1 +(4t 4t2)P2 + (2t2 t) P3 (6-4) (0t1) 可把式可把式(6-4)改写成矩阵方式为:改写成矩阵方式为:001143242321PPP P(t) = t2 t 1(6-5) 以上推导求出的算式,即为我们所要求的过不在不断线上的三点:以上推导求出的算式,即为我们所要求的过不在不断线上的三点:P1(x1,y1)P1(x1,y1),P2(x2,y

15、2)P2(x2,y2)和和P3(x3,y3)P3(x3,y3)的抛物线方程。这时根据参变量的抛物线方程。这时根据参变量t t的取值,我们就可以一一计的取值,我们就可以一一计算出位于曲线上的数据点,然后依次连线绘出图形。算出位于曲线上的数据点,然后依次连线绘出图形。 35 设有一离散型值点列设有一离散型值点列Pi(i = 1, 2, ,n)Pi(i = 1, 2, ,n),我们可以按式,我们可以按式(6-5)(6-5)每经过相邻三点每经过相邻三点作一段抛物线,由于有作一段抛物线,由于有n n个型值点,所以像这样的抛物线段一共可以作出个型值点,所以像这样的抛物线段一共可以作出n2n2条。如图条。如

16、图6.46.4所示。所示。 P1P2P3P4P5Pn-2Pn-1Pn图图6.4 6.4 产生产生n n2 2段抛物线段抛物线 36 在这在这n2条抛物线段中,第条抛物线段中,第i条抛物线段为经过条抛物线段为经过Pi,Pi+1,Pi+2三点,所以它的表达式应为:三点,所以它的表达式应为: Si(ti)=(2ti23ti+1)Pi+(4ti4ti2)Pi+1+(2ti2ti)Pi+2 (0ti1) (6-7) 同理,第同理,第i+1条抛物线段为经条抛物线段为经Pi+1,Pi+2和和Pi+3三点,所以它的表达式为:三点,所以它的表达式为: Si+1(ti+1)=(2ti+123ti+1+1)Pi+1

17、+(4ti+14ti+12)Pi+2+(2ti+12ti+1)Pi+3 (0ti+11) 6-8 经过四点所画出的两条抛物经过四点所画出的两条抛物线段线段Si(ti)Si(ti)和和Si+1(ti+1)Si+1(ti+1)的图形的图形如图如图6.56.5所示:所示: PiPi+1Pi+2Pi+3SiSi+1图图6.5 Si6.5 Si和和Si+1 Si+1 37 普通说来,每两段曲线之间的搭接区间,两条抛物线是不能够重合的。例如图普通说来,每两段曲线之间的搭接区间,两条抛物线是不能够重合的。例如图6.56.5中,中, Si Si和和Si+1Si+1两条抛物线,它们在两条抛物线,它们在Pi+1P

18、i+1和和Pi+2Pi+2两点之间为搭接区间,在这区间内,两点之间为搭接区间,在这区间内,SiSi和和si+1si+1不太有能够会自然地重合成一条曲线。不太有能够会自然地重合成一条曲线。 显然,对于拟合曲线来说,整个型值点列必需只能用一条光滑的曲线衔接起来。显然,对于拟合曲线来说,整个型值点列必需只能用一条光滑的曲线衔接起来。为了做到这一点,在为了做到这一点,在SiSi和和si+1si+1这样两条曲线的共同区间内,必需有一个方法让它们按这样两条曲线的共同区间内,必需有一个方法让它们按照一个一定的法那么结合成一条曲线,这结合的方法就是加权合成。照一个一定的法那么结合成一条曲线,这结合的方法就是加

19、权合成。 在加权合成的过程中,我们首先要选择两个适宜的权函数。假设我们在这里选择在加权合成的过程中,我们首先要选择两个适宜的权函数。假设我们在这里选择的两个权函数分别为的两个权函数分别为f(T)和和g(T),加权合成后的曲线为,加权合成后的曲线为Pi+1(t),那么:,那么: Pi+1(t) = f(T)Si(ti)+ g(T)Si+1(ti+1) 38 在抛物样条曲线中,我们选择的权函数在抛物样条曲线中,我们选择的权函数f(T)和和g(T)是简单的一次函数,且它们之间是简单的一次函数,且它们之间存在有互补性。它们分别为:存在有互补性。它们分别为: f(T)= lT g(T) = T (OT1

20、) 这样,式:这样,式: Pi+1(t) = f(T)Si(ti) g(T)Si+1(ti+1)即可改写为:即可改写为: Pi+1(t) =(1T)Si(ti) TSi+1(ti+1) (6-9) 在表达式在表达式6-96-9中,包含了三个参变量,即:中,包含了三个参变量,即:T T、titi和和ti+1ti+1。假设这三个参变量。假设这三个参变量不加以一致,那么接下去的任务是无法进展的,所以我们首先要一致式中的参变量。不加以一致,那么接下去的任务是无法进展的,所以我们首先要一致式中的参变量。 39 对于曲线段对于曲线段Si(ti)Si(ti),参变量,参变量titi的取值范围为:的取值范围为

21、:0ti10ti1,但曲线段,但曲线段Si(ti)Si(ti)与曲线段与曲线段Si+1(ti+1)Si+1(ti+1)搭接的部分是原曲线段的后半截,即是从点搭接的部分是原曲线段的后半截,即是从点Pi+1Pi+1到到Pi+2Pi+2之间的区间,在这个区之间的区间,在这个区间内,参变量的取值范围应为:间内,参变量的取值范围应为:0.5ti10.5ti1。 同理,对于曲线段同理,对于曲线段Si+1(ti+1),在点,在点Pi+1到到Pi+2之间的区间内,其参变量之间的区间内,其参变量ti+1的取值范围应为:的取值范围应为:0ti+10.5。 在权函数在权函数f(T)和和g(T)中,变量中,变量T的取

22、值范围定为:的取值范围定为:0T1。 为了一致式为了一致式(6-9)(6-9)中的三个参变量:中的三个参变量:T T、titi和和ti+1ti+1,我们选择,我们选择t t作为一致后的参变量,把作为一致后的参变量,把原有的三个参变量原有的三个参变量T T、titi和和ti+1ti+1均化成独一含有均化成独一含有t t的方式,并要给的方式,并要给t t规定一个适宜的取值范围。规定一个适宜的取值范围。假设我们使假设我们使t t的取值范围为:的取值范围为:0t0.50t0.5,那么上面的三个参变量可一致方式为:,那么上面的三个参变量可一致方式为: PiPi+1Pi+2Pi+3SiSi+140 T =

23、 2t ti = 0.5t 0t0.5 ti+1 = t 于是,原式于是,原式(6-9)可根据新的参变量可根据新的参变量t改写成如下这样的方式:改写成如下这样的方式: Pi+1(t) =(1 2t)Si(t + 0.5)2tSi+1(t) (6-10) 其中:其中: 12t = f(T) 2t = g(T) Si(t0.5)=(2t2t)Pi+(14t2)Pi+1+(2t2t)Pi+2 Si+1(t)=(2t23t1)Pi+1+(4t4t2)Pi+2+(2t2t)Pi+3 41 把以上四式代入式把以上四式代入式6-10,展开、整理后可得:,展开、整理后可得: Pi+1(t) =(4t3 + 4

24、t2 t)Pi+(13t310t2 +1)Pi+1 +(12t3 + 8t2t)Pi+2+(4t3 2t2)Pi+3 (i = 1,2, n3) (0t0.5) (6-11) 式式(6-11)(6-11)的本质是:表达了每相邻的四个点可以决议中间的一段抛物样条曲线。的本质是:表达了每相邻的四个点可以决议中间的一段抛物样条曲线。见图见图6.66.6所示。所示。 PiPi+1Pi+2Pi+3Pi+1(t)图图6.6 46.6 4个点决议中间的一段样条曲线个点决议中间的一段样条曲线 假设一个离散点列假设一个离散点列PiPi具有具有n n个型值点,即个型值点,即i=1i=1,2 2,n n。那么根据式

25、。那么根据式(6-11)(6-11),可以,可以加权合成后生成加权合成后生成n3n3段抛物样条曲线。即式段抛物样条曲线。即式(6-11)(6-11)中的中的i i的取值范围为:的取值范围为:i i1 1n3n3。 4243443232( )110aaP ttttaa45232( )321010aaP tttaa3232( )110aaP ttttaa3210321023211321(0)000(1)111(0)32(1)32PaaaaPaaaaPa ta taaPaaa 46000013111112000101132100PaPaPaPa1300010221102111113321110010

26、00010003210110001aPPaPPaPPaPP3210321023211321(0)000(1)111(0)32(1)32PaaaaPaaaaPa ta taaPaaa 472211332100101000Mh3232( )110aaP ttttaa322110233211100100010001aPaPaPaP3201( )101PPP ttttMhPP令称为称为HermiteHermite矩阵,插值样条参数方程可以写矩阵,插值样条参数方程可以写成:成:48 其中,上式称为其中,上式称为HermiteHermite样条调和函数,由于它们调和了边境约束值,使在整个参数样条调和函数,

27、由于它们调和了边境约束值,使在整个参数范围内产生曲线的坐标值。调和函数仅与参数范围内产生曲线的坐标值。调和函数仅与参数t t有关,而与初始条件无关。有关,而与初始条件无关。493.1.5 Ferguson曲线端点位矢和切矢0P0P1P1P)(tP)(tP0Fto11to111Fto11to110G1G图3.1.6 三次调和函数50例:给定例:给定9个型值点,其中起始点和终止点是同一个点,从而其特征多边形是一个首个型值点,其中起始点和终止点是同一个点,从而其特征多边形是一个首尾相接的封锁多边形,详细坐标位置如下:尾相接的封锁多边形,详细坐标位置如下:100,300,120,200,220,200

28、,270,100,370,100,420,200,420,300,220,280,100,300假定各点处的一阶导数数值如下:假定各点处的一阶导数数值如下:70,-70, 70,-70, 70,-70,70,-70,70,70, 70,70, -70,70,-70,70,70,-70用用Hermite插值方法绘制曲线。插值方法绘制曲线。解:解:p0=(100,300) p1=(120,200) p0=(70,-70) p1=(70,-70)For(t=0;t=1;t=t+0.1)或或For(t=0;tP(t)= -6P(0) + 6P(1) - 3P(0) - 3P(1) - P(0)/2 +

29、 P(1)/2 t5 +15P(0) - 15P(1) + 8P(0) + 7P(1) + 3P(0)/2 t4 +-10P(0) + 10P(1) - 6P(0) - 4P(1) - 3P(0)/2 + P(1)/2 t3 + P(0)/2 t2 + P(0) t +P(0) 56整理得: P(t) = (-6t5 + 15t4 - 10t3 + 1) P(0) + (6t5-15t4+10t3) P(1) + (-3t5 + 8t4 -6t3 + t) P(0) + (-3t5 +7t4-4t3) P(1) + (-t5/2+ 3t4/2-3t3/2+t2/2) P(0) + (t5/2-

30、t4+t3/2) P(1) 故调和函数为: F(0)= -6t5 + 15t4 - 10t3 + 1 F(1)= 6t5 -15t4+ 10t3 F(2)= -3t5 + 8t4 -6t3 + t F(3)= -3t5 +7t4-4t3 F(4)= -t5/2+ 3t4/2-3t3/2+t2/2 F(5)= t5/2-t4+t3/257系数矩阵为: - 6 6-3-3-1/2 1/2 15 -15 8 7 3/2 -1 -10 10-6-4-3/2 1/2 0 0 0 0 1/2 0 0 0 1 0 0 0 1 0 0 0 0 058习题2试求两段三次试求两段三次Hermite曲线达曲线达C1

31、延续的条件延续的条件解:两段三次解:两段三次Hermite曲线分别为:曲线分别为: Q1(t1)=a3t13 + a2t12+ a1t1+ a0 t10 1 Q2(t2)=b3 t23 + b2t22+ b1t2+ b0 t20 1 根据根据C1延续充要条件为:延续充要条件为: Q1(1)和和Q2(0)在在P点处重合,点处重合, 且其在且其在P点处的切矢量方向一样,大小相等点处的切矢量方向一样,大小相等 59即Q1(1)= Q2(0),Q1(1)= Q2(0) ,Q1(1)= Q2(0)而 Q1(1)= a3 + a2 + a1 + a0 Q2(0)= b0 Q1(t1)=3a3t12 + 2

32、a2 t1+ a1 Q2(t2)=3b3 t22+ 2b2 t2+ b1 那么:Q1(1)=3a3 + 2a2+ a1 Q2(0)= b1 Q1(t1)=6a3t1 + 2a2 Q2(t2)=6b3t2 + 2b2 Q1(1)=6a3+ 2a2 Q2(0)= 2b2 60= 两段三次Hermite曲线: Q1(t1)=a3t13 + a2t12+ a1t1+ a0 t10 1 Q2(t2)=b3 t23 + b2t22+ b1t2+ b0 t20 1 要到达C1延续,其系数必需满足以下关系式: a3 + a2 + a1 + a0 = b0 3a3 + 2a2 + a1 = b1 6a3 + 2

33、a2 =2 b261 前面讨论过的三次参数样条曲线经过给定的型值点,属于样条插值曲线,适宜于知曲前面讨论过的三次参数样条曲线经过给定的型值点,属于样条插值曲线,适宜于知曲线上的某些点而生成曲线的情形。但在外形设计时,初时给出的型值点有时并不准确,由线上的某些点而生成曲线的情形。但在外形设计时,初时给出的型值点有时并不准确,由给定的型值点生成的样条曲线并不能满足性能或美观的要求,需求加以修正。但多数插值给定的型值点生成的样条曲线并不能满足性能或美观的要求,需求加以修正。但多数插值样条曲线作为外形设计工具不能直观地表示出应该如何控制和修正曲线的外形,短少灵敏样条曲线作为外形设计工具不能直观地表示出

34、应该如何控制和修正曲线的外形,短少灵敏性和直观性。法国雷诺汽车公司工程师性和直观性。法国雷诺汽车公司工程师P.E.Bezier在在1962年提出了一种新的参数曲线表示方年提出了一种新的参数曲线表示方法,称为法,称为Bezier曲线。这种方法的特点是所输入型值点与生成曲线之间的关系明确,能比曲线。这种方法的特点是所输入型值点与生成曲线之间的关系明确,能比较方便地经过修正输入参数来改动曲线的外形和阶次。较方便地经过修正输入参数来改动曲线的外形和阶次。6263 在该多边折线的各顶点中,只需第一点和最后一点是在曲线上的,其他的顶点那在该多边折线的各顶点中,只需第一点和最后一点是在曲线上的,其他的顶点那

35、么用来定义曲线的导数、阶次和外形。第一条边和最后一条边那么表示出了曲线在起么用来定义曲线的导数、阶次和外形。第一条边和最后一条边那么表示出了曲线在起点处和终点处的切线方向,即第一条边和最后一条边分别和曲线在起点和终点处相切。点处和终点处的切线方向,即第一条边和最后一条边分别和曲线在起点和终点处相切。曲线的外形趋向于多边折线的外形。改动多边折线的顶点位置和曲线外形的变化有着曲线的外形趋向于多边折线的外形。改动多边折线的顶点位置和曲线外形的变化有着直观的联络。以下图列举了一些直观的联络。以下图列举了一些BezierBezier多边折线和相应的多边折线和相应的BezierBezier曲线的外形关系。

36、曲线的外形关系。 P0P1P2P3P0P1P2P3P0P1P2P3图图 Bezier Bezier曲线曲线 Bezier Bezier曲线是由一组多边折线定义的曲线是由一组多边折线定义的, ,在多边折线的各顶点中,只需第一点和最在多边折线的各顶点中,只需第一点和最后一点在曲线上后一点在曲线上, , 第一条和最后一条折线分别表示出曲线在起点和终点处切线方向。第一条和最后一条折线分别表示出曲线在起点和终点处切线方向。曲线的外形趋向于多边折线的外形,因此,多边折线又称为特征多边形,其顶点称为曲线的外形趋向于多边折线的外形,因此,多边折线又称为特征多边形,其顶点称为控制点。控制点。646.2.1 Be

37、zier曲线的数学表达式 1. 1. 数学表达式数学表达式 Bezier Bezier曲线次数严厉依赖于确定该段曲线的控制点个数,通常由曲线次数严厉依赖于确定该段曲线的控制点个数,通常由n n1 1个顶点个顶点定义一个定义一个n n次多项式,曲线上各点参数方程式为:次多项式,曲线上各点参数方程式为: 在式在式6-21中,中,Pi为各顶点的位置向量,为各顶点的位置向量,Bi,n(t)为伯恩斯坦为伯恩斯坦Bernstein基函数,基函数,该函数的表达式为:该函数的表达式为: n次多项式曲线次多项式曲线P(t)称为称为n次次Bezier曲线曲线0,01, ! 10,00iiittiitt注意:当时,

38、当时,,0( )( )(01)(621)nii niP tPBtt ,( )(1)(622)!()!iin ii nninBtCttnCi ni65Bezier曲线及其特征多边形图例:66一次一次Bezier曲线曲线n=1二次二次Bezier曲线曲线n=2三次三次Bezier曲线曲线n=31,1010( )( )(1)0,1iiiP tPBtt PtP t,0,( )( )(01)!( )(1)(621)!()!( )(1)(622)!()!nii niin ii niin ii nninP tPBttnBttti niBtCttnCi ni 222,201202210100( )( )(1)

39、2 (1)0,1(2)2()iiiP tPBttPtt Pt PtPPP tPP tP3,3032230123( )( )(1)3 (1)3 (1)0,1iiiP tPBttPttPtt Pt P t672. Bezier曲线的性质曲线的性质1曲线的起点和终点同特征多边形的起点和终点重合曲线的起点和终点同特征多边形的起点和终点重合 对对Bernstein多项式有:多项式有: 当当t0时,只需时,只需i0的项不为的项不为 0,其它项都为,其它项都为ti0i0,因此,因此0000,00)01(0!1!)0()0(PPnnBPPnn其中规定:其中规定:0 0!=1=1,00=100=1。 当当 t

40、t1 1 时,只需时,只需i in n 的项不为的项不为0 0,其它项为,其它项为(1-t)n-i(1-t)n-i0 n-i0 n-i0, 0, 因因此此P (1) = P0 B0, n (1) + P1 B1, n (1)+ P2 B2, n (1) + Pn Bn, n (1) nnnnnnnnPPnnBPP)11(11!)1()1(,从以上结果可以得出,曲线经过多边折线的起点和终点。从以上结果可以得出,曲线经过多边折线的起点和终点。,( )(1)(622)!()!iin ii nninBtCttnCi ni682 2一阶导数一阶导数 对参数对参数t t求导得:求导得:)()()1 ()!

41、1( !)!1()1 ()!()!1()!1()1 ()()1 ()!( !)(1,1,11111,tBtBnttininttininnttinttiinintBniniiniiniiniinini于是得:于是得:101,1, 1)()()( nininiitBtBPntP6-236-23在起始点在起始点t t0, B0,n-1(0)0, B0,n-1(0)1 1,其他项均为,其他项均为0 0,故有,故有: : P P(0)(0)n(P1n(P1P0)P0)在终止点在终止点t t1, Bn-1,n-1(1)1, Bn-1,n-1(1)1 1,其他项均为,其他项均为0 0,故有,故有: : P

42、P(1)= n(Pn(1)= n(PnPn-1)Pn-1)即即BezierBezier曲线在端点处的一阶导数只同相近的两个控制点有关,其方向一样于两点的连曲线在端点处的一阶导数只同相近的两个控制点有关,其方向一样于两点的连线方向。线方向。,0,( )( )(01)!( )(1)(621)!()!nii niin ii nP tPBttnBttti ni 693 3二阶导数二阶导数对参数对参数t t求二阶导数可得:求二阶导数可得: 在起始点在起始点t t0 0处的二阶导数为:处的二阶导数为: P P(0)(0)n(nn(n1)(P21)(P22P12P1P0)P0) =n(n-1)(P2 =n(

43、n-1)(P2P1)-(P1-P0)P1)-(P1-P0)在终止点在终止点t t1 1处的二阶导数为:处的二阶导数为: P P(1)(1)n(nn(n1)(Pn1)(Pn2Pn-12Pn-1Pn-2)Pn-2) =n(n-1)( Pn-2 =n(n-1)( Pn-2Pn-1)-(Pn-1Pn-1)-(Pn-1Pn)Pn)结论:结论:BezierBezier曲线在端点处的二阶导数只同相近的三个控制点有关。曲线在端点处的二阶导数只同相近的三个控制点有关。那么,那么,BezierBezier曲线在端点处的曲线在端点处的r r阶导数是由端点和它们阶导数是由端点和它们r r个临近的控制多边形顶点来决议。

44、个临近的控制多边形顶点来决议。221,20( )(1)(2)( )niiii niP tn nPPP Bt70(4)(4)凸包性凸包性 Bezier Bezier曲线的另一个重要性质是它落在特征多边形顶点所构成的凸包内。曲线的另一个重要性质是它落在特征多边形顶点所构成的凸包内。即在几何图形上,当特征多边形为凸时,即在几何图形上,当特征多边形为凸时,BezierBezier曲线也是凸的;当特征多边形曲线也是凸的;当特征多边形有凹有凸时,其曲线的凸凹外形与之对应。有凹有凸时,其曲线的凸凹外形与之对应。BezierBezier曲线的凸包性质保证了多项曲线的凸包性质保证了多项式曲线随控制点平稳前进而不

45、会振荡。式曲线随控制点平稳前进而不会振荡。(5)(5)几何不变性几何不变性 由由BezierBezier曲线的数学定义式知,曲线的外形由特征多边形的顶点曲线的数学定义式知,曲线的外形由特征多边形的顶点Pi(iPi(i0,1,.,n)0,1,.,n)独一确定,与坐标系的选取无关独一确定,与坐标系的选取无关, ,这就是几何不变性。这就是几何不变性。6 6对称性对称性 假设坚持假设坚持n n次控制多边形的顶点位置不变,而把次序颠倒过来,即下标为次控制多边形的顶点位置不变,而把次序颠倒过来,即下标为i i的控制点的控制点PiPi改为下标为改为下标为n-in-i的控制点的控制点Pn-iPn-i,那么此时

46、曲线仍不变,只不过曲线的,那么此时曲线仍不变,只不过曲线的走向相反而已。走向相反而已。71 顶点顶点 P0,P1,P2可定义一条二次可定义一条二次(n=2) Bezier曲线。此时式曲线。此时式6-21可以改写成:可以改写成: P(t)= (1t)2P02t(1t)P1t2P2 (0t1) (6-24) 写成矩阵方式为:写成矩阵方式为:001022121210PPP P(t) = t2 t 1 在式在式(6-24)中,相对应于式中,相对应于式(6-21)中的调和函数中的调和函数Bi,n(t)分别为:分别为: B0,2(t)= 12tt2 B1,2(t)= 2tt2 B2,2(t)= t2 72

47、 根据式根据式(6-24),当,当n = 2时,二次时,二次Bezier曲线在起点曲线在起点P0处有切向量处有切向量P0=P(t=0)=2(P1P0);在终点在终点P2处有切向量处有切向量P2 =P(t=1) = 2(P2P1)。同时,当。同时,当t =1/2时:时: )(212141214121201210PPPPPPP 该式阐明,二次该式阐明,二次BezierBezier曲线经过曲线经过P0P1P2P0P1P2中中的一条中线的一条中线P1PmP1Pm的中点的中点P P。综上所述,我们可以。综上所述,我们可以看出:二次看出:二次BezierBezier曲线是一条抛物线。见以下图曲线是一条抛物

48、线。见以下图所示。所示。 P1P0P2PmP 二次二次BezierBezier曲线曲线 73746.2.36.2.3三次三次Bezier Bezier 曲线曲线 普通地说,可以用任何数目的控制点拟合出一条普通地说,可以用任何数目的控制点拟合出一条BezierBezier曲线,但这需求计算更曲线,但这需求计算更高次的多项式。复杂曲线可以由一些较低次数的高次的多项式。复杂曲线可以由一些较低次数的BezierBezier曲线段衔接而成,较小的曲曲线段衔接而成,较小的曲线段衔接也便于更好地控制小区域内的曲线外形,最常运用的是三次线段衔接也便于更好地控制小区域内的曲线外形,最常运用的是三次BezierB

49、ezier曲线。曲线。 三次三次BezierBezier曲线由四个控制点曲线由四个控制点P0P0、P1P1、P2P2、P3P3定义:定义:3,30( )( )iiiP tPBt7475展开后的表达式为:P(t)=(-t33t23t1)P0 + (3t36t23t)P1 +(-3t33t2)P2t3P3 =B0,3(t)P0 + B1,3(t)P1+ B2,3(t)P2B3,3(t)P3其中 B0,3(t)-t33t23t1 B1,3(t)3t36t23t B2,3(t)-3t33t2 B3,3(t)t3称为三次Bezier曲线的调和函数,以下图表示出调和函数的四条曲线。这四条曲线构成了三次Be

50、zier曲线的一组基,任何三次Bezier曲线都是这四条曲线的线性组合。7576三次Bezier曲线的调和函数:7677三次Bezier曲线函数式用矩阵方式表示为:是三次Bezier系数矩阵。013223( )1bePPP utttMPP1331363033001000beM7778三次Bezier曲线的在端点处的一阶导数为: P(0)3(P1P0) P(1)= 3(P3P2)二阶导数为: P(0)6(P22P1P0) P(1)6(P32P2P1)三次Bezier曲线函数式分别写成坐标分量的方式如下: x(t)(-t33t23t1)x0(3t36t23t)x1 (-3t33t2)x2t3x3

51、y(t)(-t33t23t1)y0(3t36t23t)y1 (-3t33t2)y2t3y3 z(t)(-t33t23t1)z0(3t36t23t)z1 (-3t33t2)z2t3z3 7879 实践生成曲线时,按问题的要求取一适宜的步长,控制u从0到1变化,求出一系列(x,y)坐标点,将其用小线段顺序衔接起来,就可以得到一条Bezier曲线。 对于二维平面的情况,只需x,y坐标分量,可以给出四点三次Bezier曲线如下的算法描画: begin x=x0 y=y0 moveto (x,y) for t0 to 1 step t xB0,3(t)x0B1,3(t)x1B2,3(t)x2B3,3(t

52、)x3 yB0,3(t)y0B1,3(t)y1B2,3(t)y2B3,3(t)y3 lineto (x,y) endfor end7980三次Bezier曲线例子: 设在平面上给定的7个控制点坐标分别为:100,300,120,200,220,200,270,100,370,100,420,200,420,300。画出其曲线。80816.2.4Bezier 曲线的光滑衔接曲线的光滑衔接 复杂曲线可以由一些较低次数的复杂曲线可以由一些较低次数的Bezier曲线段衔接而成,工程上通常运用分段三次曲线段衔接而成,工程上通常运用分段三次Bezier曲线来描画。将分段的三次曲线来描画。将分段的三次Bez

53、ier曲线衔接起来构成三次曲线衔接起来构成三次Bezier曲线,其关键问题曲线,其关键问题是如何保证衔接处具有延续性。是如何保证衔接处具有延续性。 设有两段三次设有两段三次Bezier曲线,其中一段曲线由控制点曲线,其中一段曲线由控制点P0、P1、P2、P3生成,另一条曲线生成,另一条曲线由控制点由控制点Q0、Q1、Q2、Q3生成,生成,P3(Q0)是两段曲线的公共控制点,如以下图所示。假是两段曲线的公共控制点,如以下图所示。假设两段曲线要到达光滑衔接,需求一阶导数延续,甚至二阶导数延续。对于一阶导数延设两段曲线要到达光滑衔接,需求一阶导数延续,甚至二阶导数延续。对于一阶导数延续,由前面所推出

54、的公式,第一段曲线终点处的导数为:续,由前面所推出的公式,第一段曲线终点处的导数为: P(1)3(P3P2) 第二段曲线起点处的导数为:第二段曲线起点处的导数为: Q(0)3(Q0Q1) 8182两段Bezier曲线光滑衔接的条件表示图一阶导数要延续,那么应有P(1)Q(0),即: P3P2Q1Q0 也即要求P2P3(Q0)Q1三点共线,而且P3(Q0)为中点,是它们的公切线。1032)Q(QPP8283 第一段曲线终点处的二阶导数为:第一段曲线终点处的二阶导数为: P P(1)(1)6(P36(P32P22P2P1)P1)第二段曲线起点处的二阶导数为:第二段曲线起点处的二阶导数为: Q Q(

55、0)(0)6(Q26(Q22Q12Q1Q0) Q0) 要到达二阶导数延续,那么应有要到达二阶导数延续,那么应有P P(1)(1)Q Q(0)(0),即,即: : P3 P32P22P2P1P1Q2Q22Q12Q1Q0Q0 Bezier Bezier样条曲线为外形设计提供了灵敏直观的方法,但对样条曲线为外形设计提供了灵敏直观的方法,但对(n+1)(n+1)个控制点,个控制点,需求需求n n阶阶BernsteinBernstein多项式,当多项式,当n n较大时,特征多边形对曲线控制减弱,曲线修正和运较大时,特征多边形对曲线控制减弱,曲线修正和运用都不便。假设运用低次多项式分段实现,光滑衔接所需求

56、的条件要求比较高。另用都不便。假设运用低次多项式分段实现,光滑衔接所需求的条件要求比较高。另外,假设改动任一个控制点位置,整个曲线都遭到影响,缺乏对曲线外形进展部分外,假设改动任一个控制点位置,整个曲线都遭到影响,缺乏对曲线外形进展部分修正的灵敏性。修正的灵敏性。83 根据式根据式(6-21),可以编写出绘制恣意阶次的,可以编写出绘制恣意阶次的Bezier曲线的绘图程序。曲线的绘图程序。double powi(double v,int k) / 计算计算vk double temp=1.0; if(k=0 &v=0)return 1; / 00=1 else for(int i=1;i=k;i

57、+) temp=temp*v; return temp; 84long fac(int m) /计算计算m! int i; long temp=1; if(m=0)return 1; / 0!=1 else for(i=2;i=m;i+) temp=temp*i; return temp; 85void bezier(int px,int py,int n) int x,y,i,j,k=100; double t,t1,u,v; double temp,temp1,temp2,bi; t=1.0/k; moveto(px0,py0);/挪动到起始顶点挪动到起始顶点 for(j=1;jk;j+)

58、 t1=j*t; u=t1;v=1u; x=0;y=0; 86 for(i=0;i=n;i+) temp=double(fac(n)/fac(i)/fac(ni);/n!/(i!*(n-i)!) temp1=powi(u,i);/ui temp2=powi(v,ni); /v(n-i) bi=temp*temp1*temp2; x=x+bi*pxi; y=y+bi*pyi; LineTo(x,y); lineto(pxn,pyn); 87习题3 给定四点给定四点P10,0,0,P2(1,1,1),P3(2,-1,-1), P4 (3,0,0),用其作为特征多边形来构造一用其作为特征多边形来构造

59、一条三次条三次Bezier曲线,并计算参数为曲线,并计算参数为0,1/3,2/3,1的值。的值。 解:三次解:三次Bezier曲线的普通式为:曲线的普通式为: P(t)=(1-t)3P1 +3t(1-t)2P2+ 3t2(1-t)P3+t3P4t0 1 其矩阵表达式为其矩阵表达式为 123234133 13630( )133001000PPP utttPP 883232133100036301 1 1( )133002-1-110003000660-9-9( )1333000P utttP uttt89 然后分别令然后分别令t=0, 1/3, 2/3, 1 计算上述式子即可计算上述式子即可当当

60、t0时时 当当t=1/3时,时,0660-9-9(0)0001=000333000P320660-9-9(1/3)1 31 31 3 1=12 92 9333000P90当当t2/3时时当当t=1时时320 6 60 -9 -9(2/3)(2 3)(2 3)23 1=229 293 3 30 0 0P0660-9-9(1)111=300333000P91 上面所引见的上面所引见的Bezier曲线,在外形设计的运用中,存在有一些详细的缺乏之处:曲线,在外形设计的运用中,存在有一些详细的缺乏之处: 确定了多边形的顶点数确定了多边形的顶点数(m个个),也就决议了所定义的,也就决议了所定义的Bezie

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论