B样条曲线曲面.docx
- 文档编号:4476099
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:1.28MB
B样条曲线曲面.docx
《B样条曲线曲面.docx》由会员分享,可在线阅读,更多相关《B样条曲线曲面.docx(16页珍藏版)》请在冰豆网上搜索。
B样条曲线曲面
第二章三维形态基本建模方法
第一节形体的空间定位及表示方法
一、空间、物体和结构
我们每天的生活发生在三维环境中,而且充满着三维物体,我们总是看到、感到三维。
当设计实体模型时,我们通常认为许多事情理所当然。
但在用计算机对三维场景模型化时,那么我们不得不熟悉大量的计算机软件工具,这些工具可用于模型化物体和环境。
在描述三维场景的三维模型化软件中使用的许多基本约定是基于各种行业中使用的传统约定。
例如,建筑师为了用一个简明的方法表达他们设计的空间,使用各种涉及测量、构图和定序的约定。
即使简单的矩形房间设计也要测量多次,以便于房间的所有构件放在被设计放置的地方。
此外,为了准确地按照设计师的图纸来建造,泥瓦工需要进行测量。
多年来泥瓦工和建筑师已形成约定,如何测量空间、建造物体、在结构中安装,它们的约定是精确、简洁的。
我们用类似的约定来描述用一个计算机程序模拟的三维空间中物体的尺寸、位置和次序。
让我们从定义空间或场景的边界开始三维空间的定义,最简单的方法是想象我们是在一个大立方体内工作。
可以将这个立方体当作我们的空间或环境。
在这个立方体中的物体是可见的,在其外部的物体是不可见的。
在这个空间中的主参考点称为主空间原点。
这个原点通常位于这个空间的中心。
根据模型需要和方案,该点也可放在或重新放在其他点上。
所有三维空间都有3个基本的维:
宽度、高度和深度。
表达三维空间中这些维的普遍方法是使用箭头或轴。
通常用字母X表示标记三维空间宽度的轴;用Y表示标记三维空间高度的轴;用Z表示标记三维空间深度的轴。
这三个轴交叉的空间点就是主坐标原点。
直角坐标系可以用来定义三维空间中特定的位置,精确定位三维空间中物体的点。
RenéDescartes是一位18世纪法国的哲学家和数学家,他正式使用标记为X、Y、Z的3个轴表示三维空间中维的思想。
他推导出的坐标系称为笛卡尔坐标系,在该系统中每个轴被分成许多测量单位。
原理上,这些单位是抽象的值,它可表示不同的测量单位和维刻度。
在每个轴上,原点一边的值是正的,另一边的值是负的。
如右图所示,在右手坐标系中的每一个轴的正方向用箭头表示。
二、空间坐标系统
在直角坐标系中的3个轴可用3种不同的方法进行配对,每两个轴配对定义一个平面或视图。
XY轴定义前视图(frontplane);XZ轴定义顶视图(topplane);YZ轴定义侧视图(sideplane)。
除常用的直角坐标系外,球坐标系或极坐标系也被广泛使用,因为它提供一个简单的表示三维世界中物体的方法,它使用原点到物体的距离,绕原点的角度,原点之上的高度角。
任何空间坐标系都适用于放置或移动空间中的物体或表示它们之间的相互关系。
主空间坐标系是相对于主空间原点的绝对值。
除主空间坐标系外,空间中的每一个物体可有其自己的物体或局部坐标系。
物体坐标系是相对于物体原点的,原点经常位于物体的中心。
第二节 三维物体的基本元素
一、点、线和面
一旦学会怎样定位三维空间中的点和学会怎样产生编辑表达XYZ空间的数字表,就可以开始考虑构造简单的模型。
在右图中绘出的三维物体是由4个点、6条线、6个边和4个面定义的。
点、线和面是用于构造三维物体的基本元素。
一个点可以很容易用XYZ位置定义;一条线可以用其两个端点的XYZ位置定义;一条边可由两个邻接的面定义;一个平面可由其边界线的位置定义。
通常,一个物体由几个点、线和面组成。
定义大多数三维物体的平面被称作面(faces)——就像切割金刚石一样——或多边形(polygon)。
多边形可能是规则的,也可能是不规则的。
用三维计算机软件产生的许多三维形状是由多边形组成的。
简单的几何形状可用数十个多边形定义;要求相当多细节的茶杯之类的物体需要用数百个多边形来组成细节。
复杂的物体,比如一个详细的人的模型可能需要数千个多边形。
自然现象的模型可能需要数百万个多边形。
二、有关线的说明
线用于定义物体的形状和许多表面模型。
线是所有三维物体的基本组成部分。
由于这个原因,所以了解线形之间的不同以及它们的属性、限制是重要的。
线之间的一个明显不同是,一些线是直线,而另一些线则是曲线。
直线用于定义两点间的最短距离;曲线用于表达变化的细节和增加设计的优美性。
在直线和曲线之间有许多重大的不同,它们相互有下列不同之处:
∙它们的数学描述不同;
∙当将它们用于模型时,它们的行为不同;
∙它们产生的三维结构的类型不同;
∙而且,在大多数情况下,它们的视像外表不同。
直线——正像名称所暗示的一样——没有任何弯曲。
直线仅由两个端点定义,可以有一个斜率,但角度不变。
换句话说,曲线的斜率是变化的,而直线的斜率是不变的。
在三维模型程序中有时将直线称为多边形线,因为它们用于构造多边形和多边形网。
只使用直线的三维计算机模型程序能只使用多边形网构造三维模型(不是用于基于样条的表面)。
使用曲线的三维模型计算机程序能够用曲面和多边形网构造模型。
曲线通常由几个点定义,而且从一条没有任何在角度上突变的直线路径推导而来。
曲线有时称为曲线段,而且能够用于定义曲面,构造曲面网。
曲线也常被称为样条,因为它们看起来就像物理样条,即一个细长的木头或金属条,制图员或建筑工人用它们在几个点间定出或找出曲线。
样条(传统上用于轮船船体的设计与构造)由铅锤成型。
通过改变重锤的数量和位置,可将样条改变成一条通过要求的点的光滑曲线。
曲线有许多类型,可以根据其数学和几何特征进行分类,主要的几种类型有:
∙
线性样条
∙基本样条
∙B样条
∙Bezier样条
∙NURBS
所有样条都有一个共同的特征,即它们都是从定义一个多边形产生的。
由于这个共同的特征,所以将样条称为受控曲线。
控制样条的结构是不可见的,仅当形成样条时显示,但它包含用于改变样条形状的重要信息。
具体描述见第六节。
第三节 基本几何形
事实上,所有的三维建模计算机软件都提供工具集,通过一个称作“基本几何原素”的固定结构产生简单的形状。
在所有的情况下,使所有几何原素相互关联的特征是,它们都是标准形状,这些标准形状可由模型程序根据一个简单的、预定义的数学描述、毫不费力地产生和处理。
从原理上说,所有的几何原素都可按多边形结构或曲面块生成。
几何原素也可以用来表达简单的形状,或用作复杂、复合的三维形状的基础。
在前一种情况下,由工具提供的形状除在某些情况下需要修改它们在空间中的位置、大小和比例之外,几乎无需修改。
在后一种情况下,几何原素可以修改,或通过各种工具构造更复杂的物体,这些工具包括裁剪、连接和融合。
1.立方体(box)
立方体通常按六面、封闭的三维物体模型化,因为立方体的所有面都有相同的长度,所以,通常立方体模型化的唯一变量是边长。
有时候,许多单元可以沿每一个坐标轴指定。
几乎总是使用多边形结构产生立方体。
2.球体(sphere)
像立方体一样,球体也按对称、封闭的三维物体来模型化。
为了进行定义,所有的球体都需要半径或直径,而且可以使用多边形结构或一组曲面块模型球体。
当使用直线勾画,用多边形结构模型化球体时,一个球的定义要求许多沿经度或纬度的部分,这些部分看起来就像一个球体上的平行线和子午线。
它们的数量对最后形状的几何光滑度有一个成比例的影响。
当使用曲面块模型化球体时,除了上述的信息外,还要求指定一种类型样条。
球体也经常作为自由形式模型的起点。
3.圆柱体和锥体(cylindar&cone)
圆柱体和圆锥体通常被定义为多边形物体,
可以由下列变量定形:
半径、高度、径向部件的数目,纬向部件的数目,和它们是否有端面。
用于构造圆柱体和锥体部件的数目定义这些物体模型的细节程度。
具有少量部件的物体能够比具有许多部件的物体更快地重绘。
4.圆环和圆管(toures&tube)
圆环是三维的封闭的形状,看起来就像一个油煎圈饼,圆环就象一个弯曲延伸的、两个底面相互连接到一块的圆柱。
构造圆环要求的变量与构造球体要求的变量一样,另加一个变量,即半径。
建立一个圆环模型要求的变量包括:
使用多边形还是使用曲面块、内半径大小、外半径大小、纬度划分数和经度划分数。
5.规则多面体(polygon)
许多三维物体都属于规则多面体的范围,或属于具有多个面的物体的范围。
最常见的规则多面体包括四面体、八面体、十二面体、二十面体等等。
构造规则多面体一般需要指定一个半径和面数。
6.二维形状(shape)
使用拉伸或旋转之类的模型构造技术,从二维形状可用来产生三维形状。
二维形状通常包括弧、圆、螺旋线、三角形、正方形和其他多边形。
第四节 基本形体生成方法
一、拉伸(Extrude)
通过从一个二维轮廓线开始,沿一个坐标轴或沿一条直线拉伸或扩展它,产生三维形状。
简单的拉伸仅沿任一坐标轴进行。
被拉伸的二维轮廓线可以用几何原素工具产生,或由其它程序以可移植性好的文件格式产生的输出产生(比如EPS,即压缩的PostScript、IGES、DXF、AI等)。
二、旋转(Lathe)
基于软件的旋转工具模拟实际的镟床,镟床是一种有旋转底座的工具,在底座上放一个圆柱形木料,随着底座绕垂直轴旋转,木料由放在它表面上的钢刀片成型。
陶工的转轮在一块粘土上进行几乎一致的操作。
随着一个刀片或尖锐的工具按预定义的路径移进移出,粘图或木料绕圆柱均匀地切削。
软件旋转工具将二维轮廓线绕轴旋转,二维形状可以是开口的,也可以是闭和的。
随着二维轮廓沿一个圆或径向路径旋转,产生一个新的三维形状。
随着它们的旋转,它通常保持与旋转路径垂直。
生成的三维物体由包含在旋转的二维轮廓线内的区域定义。
旋转面要有一个旋转角和多个步骤或面。
部件的的数量通常由轮廓线上的点数决定。
三、放样(Lofting)
Lofting这个名词来源于古代的造船者,它运用复杂的截面来产生船身的一种造船程序,Loft则是在组合船身时用来支撑它而建造的工具,将截面举起置入Loft的过程便称为Lofting.
在造型软件中,一个放样物体是由两个或更多的造型结合而成的。
其中一个造型用来当作路径(Path),主要用于定义物体的深度;另一个造型则用来作为物体的截面。
第二个造型我们通常称为平面造型(Shape)或是剖面(CrossSection),你可以在造型物体中任意插入许多需要的剖面。
第三章三维形态高级建模方法
第一节自由曲线曲面的表示
在形状表达领域中以复杂方式自由地变化的曲线曲面称为自由曲线曲面。
它在现实生活中大量地存在(如汽车车身、飞机、船舶等等),这类形状用传统的方式是不能很好地表达的。
自由曲线曲面可用隐函数方程和参数方程两种形式表示,如果用隐函数表示一圆心在原点单位半径的圆有如下形式:
f(x,y)=0即 x2+y2-1=0
若用参数形式来表达这个圆则可以表示为:
x(u)=cos(u)
y(u)=sin(u) 0<=u<=900
或可表示为:
x(t)=(1-t2)/(1+t2)
若用参数形式来表示这个圆则可以表示为:
或表示为:
用参数形式表示自由曲线曲面有如下的优点:
∙具有很好的几何不变性,即其形状不随所取的坐标系改变而改变;
∙易于界定范围和表示空间形状;
∙易于进行仿射变换和投影变换;
∙易于局部位置的信息输入;
∙便于对曲线曲面的形状进行控制
基于以上原因,目前表示自由形状大都采用参数形式。
随着计算机辅助几何设计的研究,人们提出了许多自由形状的表示方法,下面就介绍几种有代表性的表示方法。
一、贝塞尔(Bézier)曲线曲面
贝塞尔(Bézier)是法国雷诺汽车公司的工程师,他于1962年提出了这种独创的构造曲线曲面的方法,并以这种方法为基础,发展了一套设计制造系统,称之为UNISURF系统,八十年代中后期,国际知名的法国达索(Dassault)飞机公司研制的CATIA系统,也广泛使用贝塞尔方法。
贝塞尔方法较之以前的方法有许多优良的性质,其中一个很受设计人员青睐的性质是它是一个非常几何化的方法,设计人员不必关心曲线曲面的数字表示形式,只要在空间定义好控制多边形的形状就能大致确定曲线曲面的形状,使人能直观地交互式地控制设计对象。
一个n次Bézier曲线由下式定义:
其中:
1.Bi,n(u)是由下式定义的n次Bernstem多项式:
2.Pi为控制多边形。
尽管Bézier方法是形状设计中一个强有力的工具,但它还是存在着自身难以克服的缺点,其中一个最大的缺点是不具有局部性,当修改某个控制顶点的位置时,整个曲线曲面的形状就会发生改变,另外由于曲线曲面次数不太高会带来不稳定性,当表示变化较大的形状时,必须分成许多面片表示,这又将会带来曲面拼接、光顺等一系列的问题。
二、B样条曲线曲面
在20世纪七十年代初,Gordon与Riesenfeld等人在研究了贝塞尔方法以后引入了B样条方法。
该方法具备了贝塞尔方法的一切优点,同时克服了整体表示的局限具有局部性质,而且B样条有一套非常统一、通用、有效的标准算法及强有力的配套技术(如插入节点、升阶与降阶等),使之成为一种强大的自由曲线曲面的设计工具。
B样条方法仍采用控制顶点来定义曲线曲面,当却改用另一套特殊的基函数。
一条P次B样条的曲线方程可写为:
其中:
1.Pi为控制顶点
2.Ni,p(u)为p次B样条基函数定义在节点矢量U上,
一张B样条曲面定义在双向的控制顶点和节点矢量上,有如下形式:
节点矢量分别为:
其中r=n+p+1,s=m+q+1。
三、NURBS方法
尽管B样条方法在表示与设计自由型曲线曲面形状时显示了强大的威力,然而在表示与设计二次曲线曲面(如:
圆弧、椭圆弧、双曲线等)与平面构成的初等曲面时却遇到了麻烦,因为B样条曲线、曲面及其特例的贝塞尔曲线、曲面都不能精确地表示除抛物面以外的二次曲线曲面,而只能给出近似的表示,使本来简单问题复杂化,还带来了设计误差。
人们为了解决这个问题,对B样条方法进行了改造,在保留其描述自由型形状的长处的同时,扩充其统一表示二次曲线与曲面的能力。
这种新型的方法称为非均匀有理B样条(Non-UniformRationalB-spline,NURBS)技术。
目前NURBS已被国际标准化组织定义为工业产品形状表示的国际标准方法。
一条P次NURBS曲线定义为:
其中Pi为控制顶点(构成一控制多边形),ωi为相应的权重,Ni,p(u)为定义在节点矢量U上的P次B样条基函数,
我们让a=0,b=1,ωi>0,定义:
则上次曲线可表示为:
其中Ri,p(u)称为有理基函数。
第二节利用自由曲面建模
自由曲面的建模也是从构造曲线开始的,当所需的自由曲线构造完毕后,就可利用这些曲线来构造自由曲面了,最后将得到的各曲面片进行拼接、光滑处理,从而构造出所要的模型。
整个构造过程如下:
∙用自由曲线的生成工具描绘U方向曲线
∙用自由曲线的生成工具描绘V方向曲线
∙定义U方向曲线的顺序
∙定义V方向曲线的顺序
∙构造初始曲面片
∙进行曲面的拼接、光滑处理
∙曲面后处理
以下给出几个自由曲面建模的实例,从中可以看出自由曲面建模的强大功能。
第三节自由形体变换
在某些场合下,模型的形状用前面的方法难以实现,我们称这种形态为自由型物体。
要建立这种模型是十分耗时的,因为它的生成过程就象雕塑家完成一个雕塑作品一样,需要在简单的模型表面上进行许多局部的拉压和揉和等多种变换,最终得到所需的形态。
自由型物体的建模在第六节有较详细的叙述,现在仅介绍几种自由型物体的变换方法。
一、直接点操作
最常见、最容易的创建三维自由型物体的方法是从现有的三维结构(多边形
或基于样条)开始,这些结构可以被雕刻或转换成希望的物体。
这个虚拟的雕刻过程非常类似于用手塑造新粘土的过程。
粘土的最初形状对于期望的最后三维形状来说是不重要的。
随着手的推拿、压、拉和磨平,不成形的胶泥最终变成有意义的结构。
二、变形网络FFT
还有另一种比直接点操作更适用于任务的自由模型技术,特别在需要统一的总体变形,或用户没有技术或时间一次处理大量的点时使用。
这一技术被称作网格变形技术FFT(freeformtransforma)。
网格有时也被称为边界框。
网格是一个点和线的结构,它控制模型中的点。
可以将网格考虑成一个格子结构,这些格子用想象中的弹簧连接到模型中的点上。
因此,当移动格子或格子上的点时,也拖动物体中的点随它们一起移动。
三、地形函数
有许多技术可用于创作地形,它们模拟或再现自然的或想象的大地表面。
也有许多技术用于变形这些地形,而这些技术使用数学函数。
生成一个地形的最简单的技术是使用一个带XY分量的二维平面。
若希望的形状像一个自然地形,则使用这些技术中的任何一个都是合适的;若设法创作一个更迷人的地形,则基本平面可用数学函数变形。
产生地形的另一项技术是构造一个三维网格,它是以定义一个想象的或实际的地形的二维轮廓为基础的。
构造地形的这种技术对数据非常敏感,而且对产生地形的精确模型也非常有效。
由于它们的拓扑细节,用这种技术产生的地形很少用数学函数变形。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 曲线 曲面
![提示](https://static.bdocx.com/images/bang_tan.gif)