cad-5-第五章曲线曲面.pps_第1页
cad-5-第五章曲线曲面.pps_第2页
cad-5-第五章曲线曲面.pps_第3页
cad-5-第五章曲线曲面.pps_第4页
cad-5-第五章曲线曲面.pps_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

自由曲线曲面的发展过程,目标:美观,且物理性能最佳,1963年,美国波音飞机公司,Ferguson双三次曲面片,19641967年,美国MIT,Coons双三次曲面片,1971年,法国雷诺汽车公司,Bezier曲线曲面,1974年,美国通用汽车公司,Cordon和Riesenfeld, Forrest, B样条曲线曲面,1975年,美国Syracuse大学,Versprille有理B样条,80年代,Piegl和Tiller, NURBS方法,第五章 曲线、曲面,参数曲线基础,曲线的表示形式 非参数表示 显式表示 隐式表示,参数曲线基础,参数表示:曲线上任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点P可表示为 参数的含义 时间,距离,角度,比例等等 规范参数区间0,1,在给定的平面直角坐标系中,如果曲线上任意一点的坐标x,y都是某个变数t的函数x=f(t),y=(t)-(1);且对于t的每一个允许值,由方程组(1)所确定的点m(x,y)都在这条曲线上,那么方程组(1)称为这条曲线的参数方程,联系x、y之间关系的变数称为参变数,简称参数。类似地, 也有曲线的极坐标参数方程=f(t),=g(t)-(2) 圆的参数方程 x=a+r cos, y=b+r sin (属于0,2 ) (a,b)为圆心坐标, r为圆半径, 为参数 (x,y)为经过点的坐标 椭圆的参数方程 x=a cos, y=b sin (属于0,2) ) a为长半轴长, b为短半轴长, 为参数,双曲线的参数方程 x=a sec (正割), y=b tan, a为实半轴长, b为虚半轴长 为参数 抛物线的参数方程 x=2pt2, y=2pt, p表示焦点到准线的距离 t为参数 直线的参数方程 x=x+tcosa, y=y+tsina , x, y和a表示直线经过(x,y),且倾斜角为a,t为参数. 或者x=x+ut, y=y+vt (t属于R) x, y直线经过定点(x,y),u,v表示直线的方向, 向量d=(u,v),参数曲线基础,参数矢量表示形式 直线段的参数表示 圆的参数表示,CosX=(1- t2)/(1+ t2) SinX=2t/(1+ t2),参数表示的优点: 1)以满足几何不变性的要求。 2)有更大的自由度来控制曲线、曲面的形状。 3)对曲线、曲面进行变换,可对其参数方程直接进行几何变换。 4)便于处理斜率为无穷大的情形,不会因此而中断计算。,5)便于用户把低维空间中曲线、曲面扩展到高维空间去。 6)规格化的参数变量t0, 1,使其相应的几何分量是有界的,而不必用另外的参数去定义边界。 7)易于用矢量和矩阵表示几何分量,简化了计算。,参数连续性和几何连续性 1.曲线间连接的光滑度的度量有两种: 函数的可微性:组合参数曲线在连接处具有直到n阶连续导矢,即n阶连续可微,这类光滑度称之为 Cn或n阶参数连续性。 几何连续性:组合曲线在连接处满足不同于的某一组约束条件,称为具有n阶几何连续性,简记为 Gn; 2.曲线光滑度的两种方法并不矛盾,参数连续性Cn包含在几何连续性Gn 当中;设有两条曲线P(t)和Q(t),若要求在结合处达到G0连续或C0连续,即两曲线在结合处位置连续: 则:P (1)=Q(0) 若要求在结合处达到G1连续,就是说两条曲线在结合处在满足G0 连续的条件下,并有公共的切矢量Q(0)=aP(0) (a为大于0的常数) 当a1时,G1 连续就成为 C1 连续; 若P和Q在连接处已有C0C1 连续性且曲率的大小和方向均相等,即P(1)=Q(0) 则P和Q在连接处具有C2 连续;依次推广之。 若P和Q在连接处已有C0C1 连续性且曲率的大小不相等但方向相等, 则P和Q在连接处具有G2 连续。,曲线间连接的光滑度的度量有两种: 参数连续性: 几何连续性: 参数连续性 传统的、严格的连续性 称曲线P = P(t)在 处n阶参数连续,如果它在 处n阶左右导数存在,并且满足 记号,几何连续性 直观的、易于交互控制的连续性 0阶几何连续 称曲线P=P(t)在 处0阶几何连续,如果它在 处位置连续,即 记为 1阶几何连续 称曲线P=P(t)在 处1阶几何连续,如果它在该 处 ,并且切矢量方向连续 记为,2阶几何连续 称曲线P=P(t)在 处2阶几何连续,如果它在 处 (1) (2)副法矢量方向连续 (3)曲率相等,1.参数连续性 0阶参数连续性,记作C0连续性,是指曲线的几何位置连接,即,1阶参数连续性 记作C1连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数:,2阶参数连续性, 记作C2连续性,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数。,为什么采用参数多项式曲线 表示最简单 理论和应用最成熟 定义-n次多项式曲线,矢量表示形式 加权和形式 缺点 没有明显的几何意义 与曲线的关系不明确,导致曲线的形状控制困难,矩阵表示 矩阵分解 几何矩阵 控制顶点 基矩阵M 确定了一组基函数,例子直线段的矩阵表示,几何矩阵G,基矩阵MT,曲线光滑: 两给定的数据点之间是光滑的 两曲线段的连接点(节点)处也是光滑的,且可以要求达到一阶导数连续(切线斜率相等,C1连续)、二阶导数连续(切线斜率的变化率也相等,C2连续) 数学模型: 抛物样条曲线 样条曲线,三次Hermite曲线 Bezier曲线 B样条曲线 一般曲线为何用三次多项式表示?,(Xi+1,Yi+1),(Xi,Yi),t,ti,F,M(x)弯矩,几何意义,一般曲线为何用三次多项式表示?,“材料力学” 弯矩 E杨氏弹性模数 I惯性矩 R(X)曲率半径 R较小,可用1/Y”来代替, 把样条上受力情况简化成集中载荷,则,M(X)是简支点之间的线性函数,设: 把 积分两次, 得一个三次多项式。说明由两个支点之间的三次多 项式描述的就是样条曲线。,抛物样条曲线,一、过三点定义一段抛物线 设有不在同一条直线上的三点 ,现要求过三点定义一条抛物线段。我们采用矢量表达式来表示抛物线的方程: (0t1) 三个独立的条件,抛物线段以 为起点,即t=0时过第一点; 抛物线段以 为终点,即t=1时过第三点; 当t=0.5时,抛物线过 ,并且该点的切矢 量等于,解以上三个联立方程,得:,(0t1),例:设三个点的坐标分别为: 用这三点拟合一段抛物线。,一、分段三次参数样条曲线的数学表达式 确定B1B2B3B4系数,设P1P2玄为t2, 已知。,P1,P2,Pt,P2,P1,t,t2,i=0,1,2,n-1; t=0, t = t2 时:,5-1 三次参数样条曲线,一般 连接(xi, yi)和(xi+1, yi+1)便可近似认为绘制了椭圆上的一 小段弧。计算机精度高,把 值取很小,小段弧更精确。 改变压块的数量和位置,样条通过不同的点,产生 不同的曲线。,取ti+1二分段弦长,,当 则,例:已知 拟合成三次参数样条曲线。 解:,二、连续三次参数样条曲线的表达式 整条曲线的每段均为三次参数样条曲线,连接后,节点须某阶连续(C2连续)。 设: 曲线段的二阶导数 在节点P2处必须相等。 即 对P1P2,P2终点,t=t2,P1,P3,P1(t1),(-) P2 (+),(t2),P3(t3),对P2P3, P2起点,t0 则:,用Bi代回:,(左右B3不等),(左边为P1P2段),右边为(P2P3段),矩阵表达式: 为已知,可求出 值。 保证P1P2和P2P3在节点P2连续光滑连接,须达C2连续。,推广到一般: ,则(三个型值点),对于n个型值点确定的曲线,可写出n-2个表达式,i取1n-2。 例:n=5, i=1,2,3,如果, 已知,则可求出 (三个方程)。,其中 端点条件给出。,小结,实际上,端点条件变化,曲线变化,端点有三种 情况:两端固定,一端固定,两端自由。,1.固定端边界条件 因固定端边界条件是直接给定的两端点的切矢量P1和P2,这种条件相当于细薄样条两端都插在相邻的介质中,如图示。 2. 抛物端边界条件 抛物端边界条件要求端点的三阶导数为零,即:,*三次参数样条曲线的解题过程 给出全部型值点 的坐标值。 确定采用哪一种端点条件。 由方程组解出节点处的切矢 。 计算各分段曲线表达式中的系数 。 确定每一段插值点,并计算出各插值点的坐标。连线绘出本段样条曲线。 依次将所有分段曲线全部绘出。,三次参数样条插值曲线() Private Sub Command1_Click() Picture1.Scale (0, 0)-(640, 480) x(0) = 80: y(0) = 280 x(1) = 350: y(1) = 200 x(2) = 180: y(2) = 140 x(3) = 200: y(3) = 200 DrawWidth = 3 For i = 0 To 3 Picture1.PSet (x(i), y(i) Next i DrawWidth = 1 tspLine 3, 2, 0, 0, 0, 0 Picture1.PSet (u1(0), v1(0) For i = 1 To num - 1 Picture1.Line -(u1(i), v1(i) Next i End Sub,Private Sub Command2_Click() End End Sub Sub tspLine(ByVal n As Integer, ByVal ch As Integer, ByVal tx1 As Single, ByVal tx2 As Single, ByVal ty1 As Single, ByVal ty2 As Single) Dim a(10) As Single, b(10) As Single, c(10) As Single, dx(10) As Single, dy(10) As Single Dim qx(10) As Single, qy(10) As Single Dim tt As Single, bx3 As Single, bx4 As Single, by3 As Single, by4 As Single Dim cx As Single, cy As Single, t(10) As Single, px(10) As Single, py(10) As Single Dim u(3) As Single, v(3) As Single, i As Integer num = 0,For i = 1 To n t(i) = hypot(x(i) - x(i - 1), y(i) - y(i - 1) Next i Select Case ch Case 0 抛物条件 u(0) = (x(1) - x(0) / t(1): u(1) = (x(2) - x(1) / t(2) u(2) = (u(1) - u(0) / (t(2) + t(1) tx1 = u(0) - u(2) * t(1) u(0) = (y(1) - y(0) / t(1): u(1) = (y(2) - y(1) / t(2) u(2) = (u(1) - u(0) / (t(2) + t(1) ty1 = u(0) - u(2) * t(1) u(0) = (x(n) - x(n - 1) / t(n): u(1) = (x(n - 1) - x(n - 2) / t(n - 1) u(2) = (u(0) - u(1) / (t(n) + t(n - 1) tx2 = u(0) + u(2) * t(n) u(0) = (y(n) - y(n - 1) / t(n): u(1) = (y(n - 1) - y(n - 2) / t(n - 1) u(2) = (u(0) - u(1) / (t(n) + t(n - 1) ty2 = u(0) + u(2) * t(n),Case 1 夹持条件 a(0) = 1: c(0) = 0: dx(0) = tx1: dy(0) = ty1 a(n) = 1: b(n) = 0: dx(n) = tx2: dy(n) = ty2 Case 2 自由条件 a(0) = 2: c(0) = 1 dx(0) = 3 * (x(1) - x(0) / t(1): dy(0) = 3 * (y(1) - y(0) / t(1) a(n) = 2: b(n) = 1 dx(n) = 3 * (x(n) - x(n - 1) / t(n): dy(n) = 3 * (y(n) - y(n - 1) / t(n) Case 3 循环条件 a(0) = 2: c(0) = 1 dx(0) = 3 * (x(1) - x(0) / t(1) - (t(1) * (x(2) - x(1) / t(2) - x(1) + x(0) / (t(1) + t(2) dy(0) = 3 * (y(1) - y(0) / t(1) - (t(1) * (y(2) - y(1) / t(2) - y(1) + y(0) / (t(1) + t(2) a(n) = 2: b(n) = 1 dx(n) = 3 * (x(n) - x(n - 1) / t(n) dx(n) = dx(n) + (x(n) - x(n - 1) - t(n) * (x(n - 1) - x(n - 2) / t(n - 1) / (t(n) + t(n - 1) dy(n) = 3 * (y(n) - y(n - 1) / t(n),dy(n) = dy(n) + (y(n) - y(n - 1) - t(n) * (y(n - 1) - y(n - 2) / t(n - 1) / (t(n) + t(n - 1) End Select 计算方程组系数阵和常数阵 For i = 1 To n - 1 a(i) = 2 * (t(i) + t(i + 1): b(i) = t(i + 1): c(i) = t(i) dx(i) = 3 * (t(i) * (x(i + 1) - x(i) / t(i + 1) + t(i + 1) * (x(i) - x(i - 1) / t(i) dy(i) = 3 * (t(i) * (y(i + 1) - y(i) / t(i + 1) + t(i + 1) * (y(i) - y(i - 1) / t(i) Next i,采用追赶法解方程组 c(0) = c(0) / a(0) For i = 1 To n - 1 a(i) = a(i) - b(i) * c(i - 1): c(i) = c(i) / a(i) Next i a(n) = a(n) - b(n) * c(i - 1) qx(0) = dx(0) / a(0): qy(0) = dy(0) / a(0) For i = 1 To n qx(i) = (dx(i) - b(i) * qx(i - 1) / a(i) qy(i) = (dy(i) - b(i) * qy(i - 1) / a(i) Next i px(n) = qx(n): py(n) = qy(n) For i = n - 1 To 0 Step -1 px(i) = qx(i) - c(i) * px(i + 1) py(i) = qy(i) - c(i) * py(i + 1) Next i,计算曲线上点的坐标 For i = 0 To n - 1 bx3 = (3 * (x(i + 1) - x(i) / t(i + 1) - 2 * px(i) - px(i + 1) / t(i + 1) bx4 = (2 * (x(i) - x(i + 1) / t(i + 1) + px(i) + px(i + 1) / t(i + 1) / t(i + 1) by3 = (3 * (y(i + 1) - y(i) / t(i + 1) - 2 * py(i) - py(i + 1) / t(i + 1) by4 = (2 * (y(i) - y(i + 1) / t(i + 1) + py(i) + py(i + 1) / t(i + 1) / t(i + 1) tt = 0 While (tt = t(i + 1) cx = x(i) + (px(i) + (bx3 + bx4 * tt) * tt) * tt cy = y(i) + (py(i) + (by3 + by4 * tt) * tt) * tt u1(num) = cx: v1(num) = cy: num = num + 1: tt = tt + 0.5,Wend u1(num) = x(i + 1): v1(num) = y(i + 1): num = num + 1 Next i End Sub Private Sub Form_Load() End Sub,优点: 简单,易于理解 缺点: 难于给出两个端点处的切线矢量作为初始条件 不方便 所有参数插值曲线的缺点: 只限于作一条点点通过给定数据点的曲线 只适用于插值场合,如外形的数学放样 不适合于外形设计,三次Hermite曲线,5-2 三次(贝塞尔)曲线Bezier 参数样条曲线需要知道起点、终点的切失,这在实际工作中很难确定,如果将切矢用位矢代替,问题就会迎刃而解,Bezier就是从这点入手的。 另一种曲线的数模,便于局部修改,交互设计。 B曲线形状由一组多边折线的顶点唯一定义出来。第一点和最后一点在曲线上,其余顶点定义曲线导数,阶次和形状、改变多边折线的顶点,曲线形状变化,不通过所有型值点,便于修改曲线形状。 数学表达式:n+1个顶点定义一个n 次多项式,其参数向量表达式为: 为各项点位置向量。,伯恩斯坦(Bernstain基函数),如:m=3,顶点P0 P1 P2三点可定义一条二次(n=2)的B曲线,如:m=4,顶点P0,P1,P2,P3四点可定义一条三次(n=3)B曲线。,如何保证连接处具有G1和G2连续性。 在两段三次Bezier曲线间得到G1连续性,为实现G1连续,则有:,亦即:,在两段三次Bezier曲线间得到G2连续性:,1. #include“graphics.h“ 2. #include“conio.h“ 3. #include“stdio.h“ 4. #include“math.h“ 5. struct point 6. int x; 7. int y; 8. ; 9. void bezier(struct point p) 10. float t; 11. setcolor(14);,三次贝塞尔曲线的C程序,多于四点可通过连接保证C1连续,12. for(t=0;t1;t+=0.001) 13. moveto(pow(1-t,3)*p0.x+3*t*pow(1-t,2)*p1.x+3*pow(t,2)*(1-t)*p2.x+pow(t,3)*p3.x,pow(1-t,3)*p0.y+3*t*pow(1-t,2)*p1.y+3*pow(t,2)*(1-t)*p2.y+pow(t,3)*p3.y); 14. lineto(pow(1-t-0.001,3)*p0.x+3*(t+0.001)*pow(1-t-0.001,2)*p1.x+3*(t+0.001)*(t+0.001)*(1-t-0.001)*p2.x+pow(t+0.001,3)*p3.x, 15. pow(1-t-0.001,3)*p0.y+3*(t+0.001)*pow(1-t-0.001,2)*p1.y+3*(t+0.001)*(t+0.001)*(1-t-0.001)*p2.y+pow(t+0.001,3)*p3.y); 16. 17.,18. main() 19. int n,i; 20. struct point a50,b4; 21. int driver=DETECT,mode=1; 22. printf(“please input the number of the points:n“); 23. scanf(“d“,1 35. 36. b3.x=a0.x; 37. b3.y=a0.y; 38. for(i=0;i(n-2)/2-1;i+=2) 39. b0.x=b3.x; 40. b0.y=b3.y; 41. b1.x=ai+1.x; 42. b1.y=ai+1.y; 43. b2.x=ai+2.x; 44. b2.y=ai+2.y; 45. b3.x=(ai+2.x+ai+3.x)/2; 46. b3.y=(ai+2.y+ai+3.y)/2; 47. bezier(b); 48. 49. b0.x=b3.x; 50. b0.y=b3.y; 51. b1.x=an-3.x; 52. b1.y=an-3.y; 53. b2.x=an-2.x; 54. b2.y=an-2.y; 55. b3.x=an-1.x; 56. b3.y=an-1.y;,57. bezier(b); 58. getch(); 59. closegraph(); 60. 61. ,优点: 形状控制直观 设计灵活 缺点: 所生成的曲线与特征多边形的外形相距较远 局部控制能力弱,因为曲线上任意一点都是所有给定顶点值的加权平均 控制顶点数增多时,生成曲线的阶数也增高 控制顶点数较多时,多边形对曲线的控制能力减弱 曲线拼接需要附加条件,不太灵活,Bezier曲线,5-3 三次B样条(B-Spline)曲线 B样条与Bezier曲线的比较,特点为: 连续,不通过型值点,更光滑; 局部分段修改; 解决4点以上的拟合; 表达式: n+2个型值点,三次B样条 第i段曲线的矩阵表达式,,由前面可知,三次参数曲线可以表示成: P(t)=F0,3(t)P0 + F1,3(t)P1 + F2,3(t)P2 + F3,3 (t)P3 F0,3(t) ,F1,3(t) ,F2,3(t) ,F3,3 (t)是待定参数,P(t) 由P0,P1,P2,P3确定 Q(s) 由P1,P2,P3,P4确定,确定: F0,3(t) =(-t3+3t2-3t+1)/6 F1,3(t) =(3t3-6t2+4)/6 F2,3(t) =(-3t3+3t2+3t+1)/6 F3,3 (t)=t3/6,代入P(t)=F0,3(t)P0 + F1,3(t)P1 + F2,3(t)P2 + F3,3 (t)P3,X(t)=A0+A1t+A2t2+A3t3 Y(t)=B0+B1t+B2t2+B3t3,A0=(x0+4x1+x2)/6 A1=-(x0-x2)2 A2=(x0-2x1+x2)/2 A3=-(x0-3x1+3x2-x3)/6,B0 B3计算式同上,只要将y0,y1,y2,y3代替 x0,x1,x2,x3即可。,展开,得:,整理得到三次B样条曲线的矩阵式:,优点: 与控制多边形的外形更接近 局部修改能力 任意形状,包括尖点、直线的曲线 易于拼接 阶次低,与型值点数目无关,计算简便 缺点: 不能精确表示圆,B样条曲线,5-4 曲面,平面曲线:,空间曲线:,P(t)=,P(t)=,x(t) , y(t) ,x(t) , y(t),z(t) ,r(u,w)=,x(u,w), y(u,w), z(u,w),参数t,参数u,w,在汽车、飞机、船舶的等产品的外形设计和放样工作中,曲面的应用非常广泛,这些部门对曲面的研究十分重视。从某种意义上讲,曲面的表示可以看作是曲线表示方法的延伸和扩展。 例如:,曲面:,曲面: 不规则曲面母线变化,用三个方向的型线图(即截面平与曲面的截交线)来表示曲面的形状。 实际,借助单个or两个方向剖面的型值点拟合成曲线来构成这种不规则曲面。曲面分成若干份,曲面块,再用曲面块连接成完整的曲面。,常见的拟合曲面有三种: Coons曲面, Bezier曲面 B样条曲面, 我们主要介绍三次曲面。,拟合曲面,一.Coons曲面,Coons曲面是用四个角点处的位矢、切矢和扭矢等信息来控制的。 在描述Coons曲面时,采用由Coons本人创造的一套记号,从而使表达式间接明了。 曲面r(u,w)记作 uw,四角点位矢记作: 00=r(0, 0) 01= r(0, 1) 01= r(1, 0) 11= r(1, 1),00,01,10,11,X,Y,Z,u,w,0u,1u,0w,1w,x(u,w), y(u,w), z(u,w),uw =,00u=,r(u,w),U=0 W=0,u,01u=,r(u,w),U=0 W=1,u,10u=,r(u,w),U=1 W=0,u,11u=,r(u,w),U=1 W=1,u,四角点沿w方向切矢记作:,00w=,r(u,w),U=0 W=0,w,01w=,r(u,w),U=0 W=1,w,10w=,r(u,w),U=1 W=0,w,11w=,r(u,w),U=1 W=1,w,四角点沿u方向切矢记作:,00 uw=,2 r(u,w),U=0 W=0,u,01uw=,2 r(u,w),U=0 W=1,u,10uw=,2 r(u,w),u,11uw=,2 r(u,w),u,四角点处的扭矢记作:,U=1 W=0,U=1 W=1,十六个控制信息写成矩阵:,C,00 01,10 11,00u 01u,10u 11u,00uw 01uw,10uw 11uw,00w 01w,10w 11w,=,角点位矢,w向切矢,u向切矢,扭矢,曲面的形状、位置与切矢、位矢有关,与扭矢无关。扭矢只反映曲面的凹凸程度。,Coons曲面是双三次曲面,其方程为: uw=U M C MT WT (0 u1 , 0 w1 ) 式中:,U=,u3 u2 u1 1,W=,w3 w2 w1 1,M=,2 -2 1 1,-3 3 -2 -1,0 0 1 0,1 0 0 0,MT=,-2 3 0 0,1 -2 1 0,1 -1 0 0,2 -3 0 1,Coons曲面,写成X,Y,Z三个方向的分量形式: x(u,w)=U M Cx MT WT y(u,w)= U M Cy MT WT (0 u1 , 0 w1 ) z(u,w)= U M Cz MT WT,Coons曲面,二. Bezier曲面,Coons曲面的扭矢往往不易理解,使用不方便。另外,要构造一张曲面,已知条件切矢和扭矢,在工程中也是不太现实。Bezier曲面很好地克服了这一困难。,Bezier曲面是Bezier曲线的扩展, Bezier曲面的边界线就是由四条Bezier曲线构成的。三次Bezier曲线段由四个控制点确定,三次Bezier曲面片则由 控制点确定。16个控制点组成一个矩阵:,B=,Q00 Q 10 Q20 Q30,Q01 Q 11 Q21 Q31,Q02 Q12 Q22 Q32,Q03 Q13 Q23 Q33,Q00,Q10,Q20,Q30,Q01,Q31,Q32,Q02,Q03,Q33,Q13,Q23,Q11,Q21,Q12,Q22,w,u,曲面的形状、位置由边界上的四个角点决定。中间四个角点只反映曲面的凹凸程度。,v(u,w)= U N B NT WT (0 u1 , 0 w1 ),Bezier曲面得表达式:,式中,U=,u3 u2 u1 1,W=,w3 w2 w1 1,3 -6 3 0,-3 3 0 0,1 0 0 0,-1 3 -3 1,N=,(B与Bezier曲线相同),Bezier曲面,写成,三个方向分量得形式:,X(u,w)= U N Bx NT WT Y(u,w)= U N By NT WT (0 u1 , 0 w1 ) Z(u,w)= U N Bz NT WT,Bezier曲面,Bezier曲面 对于不规则曲面,用两族相交的平行平面去截切曲面,能得到两组相交的曲线,它们构成一组网格曲线网格法曲面化成曲线 用Bezier曲线构成Bezier曲面。 双三次Bezier曲面,44空间网格,16个点控制了Bezier曲面的形状。,B矩阵中的周围12个位置向量定义了四条三次Bezier曲线(边界),角点P00,P30,P03,P33与邻近点分别定义了四条边界曲线在角点处的8个切向量,中间点P11,P12,P21,P22决定了曲面的凹凸。 (m+1),(n+1)空间型值点, 称为mn次Bezier曲面, 分别称为n次和m次Bernstein基函数。,曲面由两组曲线表示:一组:M为常数,V从01变化所形成的曲线;另一组:V为常数,M从01变化所形所的曲线,这些曲线均是Bezier曲线。,当m=n=3时,得双三次Bezier曲线。,Bezier(贝塞尔)曲面 如前所述,Bezier曲线是一条与控制多边形顶点位置有严格的相关联关系的曲线,Bezier曲线形状趋向于特征多边形形状,阶次由控制多边形顶点个数来决定。 Bezier曲面是由Bezier曲线拓广而来,它也是以Bernstein函数作为基函数,可以构造由空间点阵列的位置来控制曲面。,P0,P1,P2,P3,由四个数据点控制的三次贝塞尔曲线,1、贝塞尔曲面的数学表达式 在三维空间里,给定(nl)(m+1)个点的空间点到Pij(i=0,ln;j=0,1m),称nm次参数曲面: 为 nm 次 Bezier曲面。 Pij是的控制顶点,和为Bernstein基函数,具体表示为:,如果用一系列直线段将相邻的点Pi0,Pi1Pim(i=0,1n)和P0j,P1jPnj(j=0,l,m)一连接起来组成一张空间网格,称这张网络为mn次曲面特征网格,如图所示。 类似于Bezier曲线情况,特征网格框定了P(u,v)的大致形状;P(u,v)是对特征网格的逼近。,p00,p10,p20,p30,p31,p21,p11,p01,p32,p22,p12,p02,p33,p23,p13,p03,3*3次的特征曲面网格,2、贝塞尔曲面的性质 Bezier曲面有类似于Bezier曲线的性质。 (l)端点位置 由于P00=P(0,0) P0m=P(0,1) Pn0=P(1,0) Pnm=P(1,1) 说明P00、P0m、Pn0、Pnm是曲面P(u,v)的四个端点,见图,p00,p30,p03,p33,(2)边界线位置 Bezier曲面的四条边界线P(0,v)、P(u,0)、P(1,v)、P(u,1)分别是以P00P01P02P0m、P00P10P20Pn0、Pn0Pn1 Pn2Pnm和P0mP1mP2mPnm为控制多边形的Bezier曲线,见图。,控制多边形,边界线,(3)端点的切平面 由计算易知,三角P00P10P01、P0nP1mP0,m-1、PnmPn-1,mPn,m-1和Pn0Pn-1,0Pn1(图5.6中打上斜线三角形)所在的平面分别在点P00、P0m 、 Pn0和Pnm与曲面P(u,v)相切。,p00,p30,p03,p33,(4)凸包性 曲面P(u,v)位于其控制顶点Pij(i=0,l,2n;j=0,1,2m)的凸包内。 (5)几何不变性 曲面P(u,v)的形状和位置与坐标系选择无关,仅和点P00、P01、Pnm位置有关。,3.几个低次的贝塞尔曲线 (1)双一次Bezier曲面 当n=m=1时,得双一次Bezier曲面,给定 (n1)(m+1) =22=4个控制点:P00、P01、P10、P11。,其图形表示如图所示,可以证明它是一个双曲抛物面(马鞍面)上的一块曲面片。,在上式中,当u=0和u=1时,得到的两条边界为直线段; 同样,当v=0和v=1时,得到两条也是直线段。 所以双一次Bezier曲面由四条直线段包围而成。,(2)双二次Bezier曲面 当n=m=2时,得双二次Bezier曲面,给定 (n1)(m+1) =33=9个控制点: P00、P01、P02、P10、P11、P12、P20 、P21 、P22。 由Bezier数学表达式,当u取定值时,是关于v的二次参数曲线,是抛物线; 当v取定值时,是关于u的二次参数曲线。 当u=0和u=1时,两条边界是抛物线段;,同理,当v=0和v=1时,另外两条边界是抛物线段。 所以双二次Bezier曲面由四条抛物线段包围而成。显然,中间的一个顶点的变化对边界曲线不产生影响,这意味着在周边八点不变的情况下,适当选择中心顶点的位置可以控制曲面凹凸,这种控制方式是极其直观的,而且极其简易。,(3)双三次贝塞尔曲线 当n=m=3时,得到双三次Bezier曲面,给定 (n1)(m+1)=44=16个控制点, Pij(i=0,1,2,3,j=0,1,2,3)。,矩阵P表示双三次Bezier曲面片特征多面体16 个控制顶点的位置向量。,双三次Bezier曲面,边界曲线,16个控制点中只有4个顶点位于Bezier曲面上,P矩阵中周围的12个控制点定义了4 条三次Bezier曲线,即边界曲线。其余的4个点与边界曲线无关,但影响曲面片的形状,4、贝塞尔曲线的拼接,一对于单个Bezier曲面可以通过以下两步生成: (1)固定v,随着u变化可得一簇Bezier曲线; (2)固定u,随着v变化可得一簇Bezier曲线。 Bezier曲面是由Bezier曲线交织而成的曲面。 然而一个复杂的曲面往往不能用单一的Bezier曲面来实现,于是要用几块Bezier曲面拼接起来。,以下讨论两张双三次Bezier曲面的拼接。 下面给出两个相邻的Bezier曲面片,我们分别将它命名为P(1)(u,v)和P(2)(u,v) 。,P(1)(u,v),P(2)(u,v),u,v,P(1)(1,1)=P(2)(0,1),如果对0v1中所有v,有P(1)(1,v)=P(2)(0,v) ,就可以得到跨界位置处曲面函数连续性。,要使Bezier曲面拼接: (1)两曲面片间的一个公共边界需要两个特征多边形之间的一个共同边界多边形。 (2)要使跨界处一阶导数连续,即曲面在跨界处光顺,对0v1中的所有v,曲面片1在u=1的切平面必须与曲面2在u=0的切平面重合。,三. B样条曲面 由B样条曲线推广,样条曲面也是样条曲线的推广,与三次Bezier曲面一样,三次样条曲面片也是由4 4控制点确定的。,同样,16个控制点写成如下矩阵形式:,B=,Q00 Q 10 Q20 Q30,Q01 Q 11 Q21 Q31,Q02 Q12 Q22 Q32,Q03 Q13 Q23 Q33,与三次样条曲线一样,三次样条曲面也很好地解决了曲面片之间的连接问题。,Q00,Q10,Q20,Q30,Q01,Q31,Q32,Q02,Q03,Q33,Q13,Q23,Q11,Q21,Q12,Q22,w,u,样条曲面的表达式为:,v(u,w)= U N B NT WT (0 u1 , 0 w1 ),U、W矩阵与Bezier曲面是一样的。,3 -6 3 0,-3 0 3 0,1 4 1 0,-1 3 -3 1,1/6,N=,(与样条曲线相同),写成X,Y,Z三个方向的分量形式: x(u,w)=U N Bx NT WT y(u,w)= U N By NT WT (0 u1 , 0 w1 ) z(u,w)= U N Bz NT WT,B样条曲面是B样条曲线的拓广。 1)B样条曲面的数学表达式 在三维空间里,给定 个点,用向量 (i=0,1,n,j=0,1,m)表示,称 (0u,v1)为 次B样条曲面; 是

温馨提示

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

评论

0/150

提交评论