收藏 分享(赏)

10、曲线曲面表示.ppt

上传人:rav7596 文档编号:9789932 上传时间:2019-09-04 格式:PPT 页数:48 大小:493KB
下载 相关 举报
10、曲线曲面表示.ppt_第1页
第1页 / 共48页
10、曲线曲面表示.ppt_第2页
第2页 / 共48页
10、曲线曲面表示.ppt_第3页
第3页 / 共48页
10、曲线曲面表示.ppt_第4页
第4页 / 共48页
10、曲线曲面表示.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、第九章 曲线曲面表示,曲线曲面的表示是计算机图形学的重要内容。它是描述物体外形、建立物体数学模型的有力工具。 在计算机图形学中,曲线曲面都是采用分段或分片参数多项式的形式。 采用分段参数方式有很多好处:曲线曲面形状不依赖坐标系的选取;有直观简便的人机交互手段;容易离散生成;造型灵活、易于拼接。 本章介绍一些常用曲线曲面的算法和性质。,显式、隐式和参数表示,曲线(面)的显式表示:y=f(x) 曲线(面)的隐式表示:f(x,y)=0 曲线(面)的参数表示:x=x(t),y=y(t) 显式表示特点:每一个x值只能对应一个y值;不能表示封闭或多值曲线,例如圆。 隐式表示特点:可以表示封闭或多值曲线。

2、非参数表示(显、隐)特点:与坐标轴相关;会出现斜率无穷大情况;非平面曲线(面)难以常系数函数表示;不便于计算和编程。,参数表示,点的每一个坐标都表示成参数变量的函数 参数整个变化范围对应整条曲线,但往往只对某一部分感兴趣,通过规格化使参数的变化范围限制在0,1中。,参数方程的优越性,有更大的自由度来控制曲线(面)的形状。如一条二维三次曲线显性表示:y=ax3+bx2+cx+d,只有四个系数可用来控制曲线(面)形状, 非参数方程表示的曲线(面)变换时必须对每个型值点进行变换;参数方程表示的曲线(面)变换时可直接对参数方程进行几何变换,节省计算量 便于处理斜率为无穷大的问题,不会因此中断计算 规格

3、化参数变量变化范围为0,1,不必为参数定义边界 易于用矢量和矩阵表达,简化了计算,参数曲线定义,一条三维曲线的参数形式:x=x(t),y=y(t),z=z(t),0t 1 曲线上任意一点可用矢量p(t)=x(t),y(t),z(t)表示。起始点在t=0处,即p(0),终点p(1)在t=1处 曲线上任意一点切矢量表示了曲线上该点的切线方向,可以表示曲线在该点处的走向。切矢量表示为:p(t)=x(t),y(t),z(t) 。起始点t=0处切矢量,为p(0),p(1)表示在终点t=1处切矢量。,Bezier曲线,在空间给定n+1个点P0,P1,Pn,称下列参数曲线为n次Bezier曲线:其中,Ji,

4、n(t)是Bernstein基函数:称折线为P0P1Pn为P(t)的控制多边形;称点P0, P1,Pn为P(t)的控制顶点。控制多边形P0P1Pn为P(t)的大致形状的勾画, P(t)是对P0P1Pn的逼近。,(9-1),(9-2),Bezier曲线的性质(1),端点的位置P0和Pn是曲线P(t)的两个端点。由式(9-1),(9-2)可得:p(0)=P0, p(1)= Pn 端点的切线P(t)在起点处与P0P1相切,在终点处与Pn-1Pn相切,由式(9-1),(9-2)可得: P(0)=n(P1-P0), p(1)=n(Pn-Pn-1),Bezier曲线的性质(2),凸包性P(t)位于控制顶点

5、P0, P1,Pn的凸包内 几何不变性曲线的形状仅由控制点的位置决定,与所选用的坐标系无关。 交互能力控制点的位置决定了曲线的形状,变换控制点位置,就可以改变曲线的形状。为人机交互确定曲线形状提供了手段。,Bezier曲线的拼接(1),一段Bezier曲线常常不足以表现复杂的曲线。为了构造复杂的曲线,常用曲线拼接的方法,即用一段段的曲线首尾相连起来。 不同的问题在连接点对曲线连续性有不同的要求: 零阶几何连续:首位连在一起即可。不光滑。 一阶几何连续:在连接点处曲线方向相同。光滑,但变化趋势不同 二阶几何连续:两段曲线在连接处,不仅光滑连接,曲率也相同。,零阶几何连续,一阶几何连续,二阶几何连

6、续,Bezier曲线的拼接(2),设两段Bezier曲线P(t), Q(t)首尾相接 零阶几何连续就是要求:P(1)=Q(0)。 由Bezier曲线的Q(0)=Q0, P(1)= Pn , 所以要使两段两段Bezier实现零阶几何连续拼接,就要求Pn = Q0, 即前一段曲线的最后一个控制点和后一段曲线的第一个控制点重合。,Bezier曲线的拼接(3),一阶几何连续就是要求:P(1)=Q(0)。由式(9-1),(9-2)可得:P(1)=n(Pn-Pn-1) , Q(0)=m(Q1-Q0),几何意义就是要求: Pn-1 , Pn (Q0) ,Q1点在同一条直线上,且Pn-1 , Q1分别在Pn

7、(Q0) 两边,Bezier曲线的拼接(4),二阶几何连续就是要求:P”(1)=Q”(0)。由式(9-1),(9-2)可得:P”(1)=n(n-1)(Pn-2Pn-1+Pn-2) =n(n-1)(Pn-Pn-1 + Pn-2 -Pn-1 ) Q”(0)=m(m-1)(Q2- 2Q1+Q0)= m(m-1)(Q2-Q1+Q0 -Q1),Pn-Pn-1,Pn-2 -Pn-1,Q0 -Q1,Q2-Q1,几何意义:除了对Pn-1 , Pn (Q0) , Q1控制点的位置有要求外,还对Pn-2 , Q2控制点的位置有要求。它们的位置必须使两个红色的矢量相等,Bezier曲线的生成(1),在实际应用Bez

8、ier曲线段绘制曲线时,常运用3次曲线,即n=3。这是因为: 一次曲线是直线,二次曲线是抛物线,它们表现复杂曲线的变化能力稍差;而三次曲线在一个小的局部,足够了。 次数太大,数学计算量大,且容易产生累积误差,影响精度。 次数太大,一段曲线的控制点太多,不利于人机交互调整曲线形状。,Bezier曲线的生成(2),下面来推导3次Bezier曲线的计算公式 n=3 由式(9-1),(9-2)可得:用矩阵表示如下:,(9-3),(9-4),Bezier曲线的生成(3),P(t)是空间点,用坐标形式表示为x(t),y(t),z(t) 由式(9-3)可知,实际坐标值可用下式分别计算:只要在0,1计算若干个

9、t值,如t=0,0.1,0.2,1,求出相应的坐标,用直线将这些点连接起来,就构成了曲线。 若要画二维曲线,只要计算x(t),y(t)。,P(t)的三个分量,Bezier曲线的手工生成(1),Bezier曲线上的点可以根据控制点精确得到,P0,P1,P2,P3,P0 ,P1 ,P2 ,P0 “,P1 “,P0 “,P0,P1,P2,P3,P0 ,P1 ,P2 ,P0 “,P1 “,P0 “,Bezier曲线的手工生成(2),P0”是曲线上的点P(1/2) 如果每次取得不是中点,而是1/3点,最终得到的点是P(1/3) 如果每次取得不是中点,而是1/n点,最终得到的点是P(1/n) P0”将一段

10、曲线分成两段,每一段成为一段新的Bezier曲线,其新的控制点如图所示 在新的Bezier曲线上可以继续精确取点,反算Bezier曲线控制点,给定n+1个型值点Qi(i=0,1,n),要求构成的Bezier曲线通过这些点。 取参数ti=i/n与Qi相对应 根据式9-1,Bezier曲线方程为,解n+1个方程,得到P0 ,P1 Pn曲线控制点,Bezier曲线升阶,增加控制点,提高对曲线的灵活控制。 升阶前后,曲线形状不发生变化。 通过公式变换,找出升阶前后控制点之间的关系。 升阶前: 升阶后: 两者曲线相同: 左式乘以(t+(1-t):,Bezier曲线升阶,比较两边同类项的系数得: 化简得:

11、例:一段3次曲线,控制点为P0,P1,P2,P3 ,升阶为4次曲线控制点为Q0,Q1,Q2,Q3,Q4 ,两者关系为Q0=P0,Q1=1/4P0+3/4P1 ,Q2=2/4P1+2/4P2Q3=3/4P2+1/4P3 , Q4=P3。,Bezier曲线升阶,新的控制点是对老的控制多边形在参数i/(n+1)处进行线性插值的结果 升阶后的新控制多边形在老控制多边形凸包中 升阶后的新控制多边形比老控制多边形更接近Bezier曲线,B样条曲线,B样条曲线定义: 设P1,P2,Pn(n=k)为给定空间的n个点,称下列参数曲线为k阶或k-1次的样条曲线。折线 P1,P2,Pn为P(t)的控制多边形,这n个

12、点为P(t)的控制顶点。 B样条曲线定义式与Bezier曲线形式类似,不同之处在于,其基函数由Bernstein基函数变成了B样条基函数Bi,k(t),(9-6),B样条基函数,B样条基函数是由参数k的递推关系所定义的其中,T=ti, i=0, 1, 2,是对参数轴t的一个划分。如果划分是等距离的,即对于任意i, ti+1 - ti=(i+1)-i=1,形成的是均匀B样条曲线。我们只讨论均匀B样条曲线,B样条基函数分析,B样条基函数是递推定义:B样条基函数的次数:k=1时, Bi,k(t) 为常数1, 0次;k=2时, Bi,k(t) 为1次; k=3时, Bi,k(t) 为二次函数; k=4

13、时, Bi,k(t) 为三次函数。,B样条基函数分析,局部性Bi,1(t) 的定义域为ti,ti+1)Bi,2(t) 由两段Bi,1(t), Bi+1,1(t)组成,定义域为ti,ti+1) ti+1,ti+2) = ti,ti+2) Bi,3(t)的定义域为ti,ti+3)Bi,4(t)的定义域为ti,ti+4)这意味着一个控制点Pi对整个曲线的影响只局限在k个分割区域ti,ti+k)中,B样条基函数分析,反之,一段定义在区间ti,ti+1)上的B样条曲线Pi(t)只由k个控制点决定Pi-k ,Pi-1 ,Pi ,。整个B样条曲线就是这样一段一段绘制完成的 只要能解决一段定义在区间ti,ti

14、+1)上的B样条曲线Pi(t)的绘制就能绘制整段曲线。,B样条曲线段的绘制,以最简单的k=2情况为例,说明如何由定义式推出曲线段的计算公式: k=2,一段曲线Pi,2(t)只有两个控制点。由式(9-6)可得:,B样条曲线段的绘制,所以,同理,在t2tt3中,因为:ti=i,令t=t-t2,0t1,在定义域范围内,B样条曲线段的绘制,参数仍用t表示,可得k=2时:,同样,k=3、4时可以得到第i段曲线的矩阵表示:,(9-7),(9-8),(9-9),B样条曲线段的绘制,对于n个控制点的构成的整个k阶曲线,整个曲线表示如下:整个曲线共由n-k+1个曲线段组成; 第一个曲线段为 ,最后一个曲线段为

15、曲线段 其形状由k个控制点Pi-k+1,Pi-k+2,Pi 的位置确定。 只要绘制出每一个曲线段,就能绘制出整个阶曲线。,B样条曲线的性质,以一段3次曲线(k=4)为例,说明B样条曲线的性质。P(t)的控制点为P1,P2,P3,P4 。 1、端点:P(t)的起点为P(0) ,终点为P(1) 。由式(9-9)P(0) =1/6(P1+4P2+P3) ,P(1) =1/6(P2+4P3+P4)先看起点, P(0) =P2+1/3 (1/2( P1+P3 ) -P2) 一个空间点可以看成是一个空间矢量。以平面上的点和平面矢量为例,回顾矢量加减法,B样条曲线的性质,B样条曲线的性质,2、端点的切线:P

16、(0),P(1)我们讨论切线,只是想了解曲线的方向。由式(9-9)P(0)=1/2(P3-P1), P(1)=1/2(P4-P2),B样条曲线的性质,3、凸包性:曲线段在控制点所围成的凸包内,4、连续性:第一个曲线段的控制点为P1,P2,P3,P4,第二个曲线段的控制点为P2,P3,P4,P5,相邻的两个曲线段有三个共同的控制点。,B样条曲线的性质,决定第一段终点的控制点与决定第二段起点的控制点完全一样。那么,第一段终点的位置和方向与第二段起点的位置和方向完全一致,因此相邻的曲线段自动连接。可以证明,曲线在连接处具有k-1阶连续。 这是B样条曲线优于Bezier曲线的地方,即不必为了在连接处保

17、持一定的平滑度,而处心积虑地安排、调整控制点位置。它能自动地平滑连接。,三次Hermite曲线,一条三次参数曲线的代数形式是:P(t)=a3t3+a2t2+a1t+a0, t0,1 四个系数a3、a2 、a1、a0唯一地确定了曲线的形状和位置。 四个系数需要四个已知条件来确定,这种根据四个已知条件来确定的一条三次参数曲线称为三次Hermite曲线。,(9-10),三次Hermite曲线,在实际应用中,常用的条件是:两个端点P(0)、P(1)和对应的切矢量P(0)、P(1)。 另一个常用的条件是:曲线上均匀分布的四个点P(0)、P(1/3) 、P(2/3) 、P(1)。这种情况是我们要介绍的。

18、下面我们推导出由曲线上均匀分布的四个点P(0)、P(1/3) 、P(2/3) 、P(1)决定的曲线。,三次Hermite曲线,由(9-10)知: P(0)=a0 P(1/3)=1/27a3+1/9a2+1/3a1+a0 P(2/3)=8/27a3+4/9a2+1/3a1+a0 P(1)= a3 +a2+a1+a0 解得: a3 = - 9/2P(0)+27/2P(1/3)-27/2P(2/3)+9/2P(1) a2 = 9P(0)-45/2P(1/3)+18P(2/3)-9/2P(1) a1 = -11/2P(0)+9P(1/3)-9/2P(2/3)+P(1) a0 = P(0),(9-11)

19、,三次Hermite曲线,由(9-10),(9-11)可得:,(9-12),由(9-12)可以计算出一系列的曲线上的点,进而画出曲线。,Hermite曲线的性质,Hermite曲线的控制点直接位于曲线之上,这种控制点称为型值点,对于确定曲线的位置十分有利。 三次Hermite曲线的起点和终点分别位于第一和第四个控制点上。 对于一系列控制点所形成的三次Hermite曲线,控制点应该分成每四个一组,每一组形成一段曲线。为了使每个曲线段连接起来,相邻两组的控制点应有一个控制点是重复的,即前一组的最后一个控制点同时也是后一组的第一个控制点。 曲线段相接处可能不光滑,可以通过调整控制点位置,使曲线段相接

20、处光滑起来。,曲面,曲面和曲线一样,也是用参数的形式表示。不同的是,曲面参数是二维的,用(u,v)表示 曲面和曲线类似,是用分片表示的。整个曲面是由一系列的分片拼接而成的。,Bezier曲面,一个三次Bezier曲面片的控制点有4x4个 一个三次Bezier曲面片的代数形式是,相应的矩阵形式是,B样条曲面,一个三次B样条曲面片的控制点有4x4个 一个三次B样条曲面片的代数形式是,相应的矩阵形式是,Hermite曲面,一个三次Hermite曲面片的控制点有4x4个 一个三次Hermite曲面片的代数形式是,相应的矩阵形式是,曲面,曲面P(u,v)上的任意点可以通过给定参数u,v (0=u,v=1

21、)、计算P(u,v)来得到。 一个曲面常用几条曲面上的曲线来表示。 曲面P(u,v)上的曲线可以通过固定u或v得到,例如 P(0,v), P(1/2,v), P(1,v), P(u,0) P(u,1/3), P(u,2/3) ,P(u,1)等都是常用来表示曲面的曲线。,曲面片的连接,曲面片的连接与曲线段的连接有类似的情况 Bezier曲面片的连接 两个Bezier曲面片分别由Pij 、Qij(i,j=1,4)控制点确定。如果要求两个曲面片相连,则要求控制点Pi4 =Qi1(i=1,4);如果要求两个曲面片在连接处一阶平滑,则要求控制点Pi3 , Pi3 (Qi1) , Qi2 在一条直线上(i

22、=1,4) 。,曲面片的连接,B样条曲面的连接与B样条曲线的连接类似,在两个曲面连接处自动实现光滑连接。 4x5个控制点Pij (i=1,4 ;j =1,5 )决定两个相邻曲面的形状,其中Pij (i=1,4 ;j =1,4 )决定一个曲面的形状, Pij (i=1,4 ;j =2,3 )决定另一个曲面的形状。 两个相邻曲面拥有12个共同的控制点Pij (i=1,4 ;j =2,4 ),曲面片的连接,Hermite曲面的连接与Bezier曲面类似 两个Hermite曲面片分别由Pij 、Qij(i,j=1,4)控制点确定。如果要求两个曲面片相连,则要求控制点Pi4 =Qi1(i=1,4);如果要求两个曲面片在连接处平滑,则要调整控制点。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报