自由曲线与曲面_第1页
自由曲线与曲面_第2页
自由曲线与曲面_第3页
自由曲线与曲面_第4页
自由曲线与曲面_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第10讲自由曲线与曲面-1华中科技大学CAD中心吴义忠cad.wyz@

10.曲线曲面基础-110.1认识曲线与曲面10.2曲面造型的发展历程10.3曲线曲面的参数表达10.4Bezier曲线10.5B样条曲线10.6NURBS曲线一类是仅由初等解析曲面(例如平面、圆柱面、圆锥面、球面、圆环面等)组成,大多数机械零件属于这一类,可以用画法几何与机械制图的方法完全清楚表达和传递所包含的全部形状信息。第二类是不能由初等解析曲面组成,而以复杂方式自由变化的曲线曲面即所谓自由型曲线曲面组成,例如飞机、汽车、船舶的外形零件。这一类形状单纯用画法几何与机械制图是不能表达清楚的。自由曲线和曲面因不能由画法几何与机械制图方法表达清楚,成为工程师们首要解决的问题。人们一直在寻求用数学方法唯一定义自由曲线和曲面的形状。工业产品的形状大致可分为两类:曲面造型(SurfaceModeling)是计算机辅助几何设计(ComputerAidedGeometricDesign,CAGD)和计算机图形学的一项重要内容,主要研究在计算机图象系统的环境下对曲线曲面的表示、设计、显示和分析。它起源于汽车、飞机、船舶、叶轮等的外形放样工艺,由Coons、Bezier等大师于二十世纪六十年代奠定其理论基础。经过三十多年的发展,曲面造型现在已形成了以有理B样条曲面(RationalB-splineSurface)为基础的参数化特征设计和隐式代数曲面(ImplicitAlgebraicSurface)表示这两类方法为主体,以插值(Interpolation)、逼近(Approximation)这二种手段为骨架的几何理论体系。10.2曲线曲面发展历程

1963年美国波音飞机公司的佛格森(Ferguson)最早引入参数三次曲线,将曲线曲面表示成参数矢量函数形式,构造了组合曲线和由四角点的位置矢量、两个方向的切矢定义的佛格森双三次曲面片。

1964年,美国麻省理工学院的孔斯(Coons)用封闭曲线的四条边界定义一张曲面。同年,舍恩伯格(Schoenberg)提出了参数样条曲线、曲面的形式。

1971年,法国雷诺(Renault)汽车公司的贝塞尔(Bezier)发表了一种用控制多边形定义曲线和曲面的方法。

1974年,美国通用汽车公司的戈登(Gorden)和里森费尔德(Riesenfeld)将B样条理论用于形状描述,提出了B样条曲线和曲面。

u10101010101010Ni+3,3(u)Ni,3(u)Ni+1,3(u)Ni+2,3(u)titi+3ti+1ti+2ti+4ti+5ti+6ti+7

1975年,美国锡拉丘兹(Syracuse)大学的佛斯普里尔(Versprill)提出了有理B样条方法。

80年代后期皮格尔(Piegl)和蒂勒(Tiller)将有理B样条发展成非均匀有理B样条(NURBS)方法,并已成为当前自由曲线和曲面描述的最广为流行的技术。非均匀有理B样条(NURBS)成为当前大多数商用CAD软件系统的内部表达技术。SolidEdge

CATIAUGNXPro/EInventor10.3曲线曲面的参数表示非参数表示有显式和隐式之分显式表示:如曲面方程z=f(x,y),式中每个z值对应唯一的x、y值,该表示计算非常方便,但无法描述多值或封闭面,如球。

隐式表示:如曲面f(x,y,z)=0,这种表示不便于由已知的参量x,y计算z值-1=0曲线参数表示空间曲线上一点p的每个坐标被表示成参数u的函数:

x=x(u),y=y(u),z=z(u)。

合起来,曲线被表示为参数u的矢函数:

p(u)=[xyz]=[x(u)y(u)z(u)]

最简单的参数曲线是直线段,端点为P1、P2的直线段参数方程可表示为:P(t)=P1+(P2-P1)tt∈[0,1];参数表示优点易于满足几何不变性的要求,可以对参数方程直接进行几何变换,节省计算量。曲线曲面表示的几何不变性是指它们不依赖于坐标系的选择或者说在旋转和平移变换下不变的性质有更大的自由度来控制曲线、曲面的形状。例如:一条二维三次曲线的显式表示为:只有四个系数控制曲线的形状。而采用二维三次曲线的参数表达式为:则有8个系数可用来控制此曲线的形状。易于规定曲线、曲面的范围。参数表示优点(续)易于处理多值问题和斜率无穷大的情形。易于计算曲线、曲面上的点。而隐式方程需求解非线性或超越方程,另外,求导、等距的计算也被简化;参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空间中曲线、曲面扩展到高维空间去。这种变量分离的特点使我们可以用数学公式处理几何分量。有关基本概念介绍位置矢量p(t)切矢T=dp/dt主法矢:N=unit(dT/dc)曲率k:dT/dt曲率半径:1/k副法矢B,三个平面插值:给定一组有序的数据点Pi,i=0,1,…,n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。常用插值方法有线性插值、抛物线插值等。逼近:构造一条曲线使之在某种意义下最接近给定的数据点,称为对这些数据点进行逼近,所构造的曲线为逼近曲线。拟合:插值和逼近则统称为拟合(fitting)。光滑与光顺化直平面法平面密切平面10.4Bezier曲线给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n),则Bezier参数曲线上各点坐标的插值公式是:n次,n+1项

其中,Pi构成该Bezier曲线的特征多边形,Bi,n(t)是n次Bernstein基函数,也称为调和函数:

三次Bezier曲线例如,由P0、P1、P2、P3四个控制点构成的控制多边形来构造则三次Bezier曲线表示为:此时调和函数为:

上式展开表示为:三次Bezier曲线性质端点性质曲线过控制顶点的首末顶点。将u=0和1分别代入表达式p(u)中可知p(0)=P0,p(1)=P3。

2.切矢性质曲线在首末两点相切于多边形的起、止边。对三次Bezier曲线求一阶导数:4.凸包性即Bezier曲线不会越出特征多边形的顶点所围成的凸包3.对称性:M对称

将控制顶点反序仍可得到同样形状的曲线。Q0Q1Q2Q3Q0Q1Q2Q3三次Bezier曲线示例Bezier曲线的计算及绘制在参数空间t∈[0,1]进行均匀插值,计算对应的坐标点,然后连接成线,这条线就是折线逼近的Bezier曲线

编程实现:

给定的4个点返回的点集直线段数,显示精度也可写成矩阵表达式,式中若求PX(t)的值,则取Pi的x坐标进行计算,同理求Py(t)、Pz(t)的值,具体如下:

Px(t)=[B0,3(t)B1,3(t)B2,3(t)B3,3(t)][P0xP1xP2xP3x]T

Py(t)=[B0,3(t)B1,3(t)B2,3(t)B3,3(t)][P0yP1yP2yP3y]T

Pz(t)=[B0,3(t)B1,3(t)B2,3(t)B3,3(t)][P0zP1zP2zP3z]T

注意:上式基函数的计算仅需一次,不必三次。Bezier曲线的绘制:例如利用上面的计算方法可分别求出t=0.0,0.05,0.10,0.15,……,0.95,1.0时的曲线上的点,依次连接相邻两点为直线段,即可得近似的曲线图形。任意次数Bezier曲线绘制//n次数,pts三维n+1个输入点,m+1离散点数目,ptsOut为输出点序列voidmkBezier(unsigned

intn,Point3Dpts[],unsignedintm,Point3D&ptsOut[]){

for(intk=0;k<=m;k++)//计算m+1个离散点的座标

{ floatt=k*1.0/m;

ptsOut[k]={0,0,0};

for(inti=0;i<=n;i++) {

ptsOut[k].x+=pts[i].x*fact(n)/(fact(i)*fact(n-i))*t^i*(1-t)^(n-i);

ptsOut[k].y+=pts[i].y*fact(n)/(fact(i)*fact(n-i))*t^i*(1-t)^(n-i);

ptsOut[k].z+=pts[i].z*fact(n)/(fact(i)*fact(n-i))*t^i*(1-t)^(n-i); } }}此处可改进求N!的递归算法unsignedintfact(unsignedintn){

staticvector<int>Fact;//Fact=newint[…];staticunsignedintnum=0;if(n<=num)returnFact[n-1];else{unsignedintres;

if(n==1||n==0)res=1;elseres=n*fact(n-1);

num=n;

Fact.pushback(res);}returnres;}//说明求3!,5!,4!的过程Bezier曲线几何作图与分割特性,

给定参数t(t

[0,1]),就把定义域[0,1]分成长度为t:(1-t)的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是第一级递推生成的中间顶点,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点。重复进行下去,直到n级递推得到一个中间顶点P0n即为所求曲线上的点P(t)。例如:对三次Bezier曲线(给定参数域t

[0,1])上t=1/3的点。把定义域分成长度为1/3:(1-1/3)的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是第一级递推生成的中间顶点P01、P11、P21,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点P02、P12

。重复进行下去,直到第3级递推得到一个中间顶点P03,即为所求曲线上的点P(t)。另外,这一算法隐含说明任一Bezier曲线均可被分割为两段Bezier曲线。第一段由P0、P01、P02、P03确定,参数空间为[0,1/3];第二段P03、P12、P21、P3确定,参数空间为[1/3,1],分割后的曲线形状保持不变。如图所示。

t=1/3Bezier曲线拼接,

工程实际中存在许多复杂形状的曲线或曲面.不可能用一条Bezier曲线拟合出复杂的曲线,但可采用分段Bezier曲线经拼接后拟合实际中存在的复杂曲线。工程应用中,希望各段曲线在连接处光滑,即切矢连续(一阶几何连续)或曲率连续(二阶几何连续)。这里仅讨论切矢连续的问题。几何连续参数连续,

下图所示为两段三次Bezier曲线的一阶连续拼接:Q1′由图中可以看出,Q1′的移动只要满足共线要求即可满足二曲线的切矢光滑拼接(即一阶几何连续G1)而不需满足P′(1)=Q′(0)(即一阶导数连续C1)也就是说一阶几何连续比一阶导数连续限制更宽松,也能满足光滑连续的工程要求,这是参数表达的优势之一。Bezier曲线的不足Bezier曲线有两点不足一是特征多边形顶点数决定了Bezier曲线的阶次,n很大时,特征多边形对形状的控制将减弱。二是Bezier曲线不能作局部修改,改变任一控制点将波及整条曲线。三是绘制复杂曲线需要拼接,比较繁琐。因此发展了B样条曲线

1972年Gordon等用B样条基代替Bernstein基函数,从而改进上述缺点。10.5B样条曲线

n+1个控制点Pi(i=0,1,…,n)构成特征多边形的顶点,k+1阶(k次)B样条曲线的表达式是:其中Ni,k(u)是调和函数,也称为B样条基函数,按照递推公式可定义为:N[n+1][k+1]先求第一列,再递推求其他k-1列un+k+1u0u1un+k式中:U=[u0,u1,……,un+k,un+k+1]称为B样条基函数的节点向量,ui

为节点值,且应满足ui

ui+1,即节点值应满足有序递增(允许有重节点)。U的确定方法:参数化均匀/准均匀B样条均匀三次B样条曲线由于B样条曲线比较复杂,为分析的方便性,先以均匀三次B样条为例进行分析。均匀三次B样条曲线其节点矢量等距分布(即ui+1-ui=常数),前面的B样条基函数可展开为:空间n+1个控制顶点Pi(i=0,1,……,n)可构造n-2段三次(k=3,四阶)均匀B样条曲线段,每相邻四个点可定义一曲线段Pi(u)(i=1,……,n-2)式中u=[0,1]如任意四个顶点Pi、Pi+1、Pi+2、Pi+3作为特征多边形构造的均匀三次B样条曲线段的方程Pi(u)可表达式为:式中:u∈[0,1]BACD均匀三次B样条曲线的程序实现控制顶点数目所求曲线离散点数目-1均匀三次B样条曲线的几何意义由前面可导出如下公式:()()()()()3i2i1ii1i3ii3i2i1iiP2PP1pPP211pP4PP611p+++++++++-=-=++=&&&

曲线起点位于以PiPi+1和Pi+1Pi+2为两邻边的平行四边形的对角线的1/6处起点的切矢与Pi+2Pi平行,模为||Pi+2-Pi||/2

起点的二阶导矢是以PiPi+1和Pi+1Pi+2为两邻边的平行四边形的对角线方向曲线段末点的情形与上述三点类似,只是向前推移一个顶点。

pi(0)=pi+1+((pi+2-pi+1)+(pi-pi+1))/6由前面的推导可知,第一段曲线的末点与第二曲线的首点满足二阶导矢连续。依次类推,各曲线段的末点与下一个曲线段的首点均满足满足二阶导矢连续,这是B样条曲线的优势之一因此采用B样条曲线直接能够构造光滑的复杂曲线Pi+4Pi+5均匀三次B样条曲线的几何作图根据B样条曲线起点和终点的位置、起点和终点的切矢方向即可近似的几何作图。四点共线二重顶点三重顶点B样条曲线性质1.对称性:将控制顶点反序仍可得到同样形状的曲线。Q0Q4Q5Q8Q1,

Q2,Q3Q6,

Q72.凸包性:即B样条曲线不越出特征多边形顶点所围成的凸包(如图中阴影所示)Pi+4Pi+5B样条曲线具有局部性质。对均匀三次B样条曲线任意段修改时,只被相邻的4个顶点控制,与其它的控制点无关。换句话说,每段k次B样条曲线只涉及k+1个基函数,并由k+1个顶点所定义。

如图,当修改P5时,只影响P2至P8之间的四条样条段(A至B),对其它段则不产生影响。这一特点对曲线的设计和修改非常有利。

6段为:[P1-P4],[P2,P5],[P3-P6],[P4-P7],[P5-P8],[P6-P9]连续性均匀三次B样条曲线段连接处具有二阶连续性。一般来说,k次B样条曲线具有k-1阶函数连续性。由前面的作图过程可知,当出现重复控制顶点时,曲线几何连续性可能下降(但函数导数仍连续),甚至产生尖点。另:当节点矢量出现重复节点(非均匀)时,在其重节点处曲线连续性将逐次下降。如当在P2处为二重节点时,连接处为一阶连续,而当P2为三重节点时,导数不连续,此时将出现尖点。5、造型的灵活性性质4的特点说明,只要灵活选用控制点的位置和节点的重复数,可以获得特殊要求的曲线段。B样条曲线的拼接B样条曲线的反算由:得:n>=3>=4n+1元一次线性方程组,高斯消元对于开曲线,则首末点边界切矢可由用户随意交互给定对于封闭曲线,则首末的位置相同,且边界切矢方向相同,不需要指定边界条件补充时应注意:B样条曲线与Bezier曲线的比较1、Bezier曲线的基函数的次数等于控制顶点数减一,而B样条曲线的基函数的次数与控制点数无关,即可用任意多的控制点来拟合三次均匀B样条曲线。原因是B样条曲线是分段拟合的,这样构造复杂曲线更方便。2、Bezier曲线的起点和终点正好是控制多边形的首末控制点,控制形状直观方便。而B样条曲线不经过控制多边形顶点。

3、为使B样条曲线经过控制多边形首末控制顶点,使之具有Bezier类似的优点。实际应用中常引入准均匀B样条,即在节点矢量中两端节点具有k+1个重复度。例如:当控制点数

温馨提示

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

评论

0/150

提交评论