计算机图形学ComputerGraphics第三章.几何造型GeometricModeling3.1几何模型的概念1.模型:表示对象的数据的组合及数据间的关系,由数据和程序过程混合组成,并按一定的数据结构存储在数据库中。2.几何模型:描述对象的形状、大小、位置等几何和拓扑信息的组合。3.几何造型:通过点、线、面和立体等几何元素的定义、几何变换、集合运算构建实际存在或想象中的形体模型,是确定物体形状和其它几何特征方法的总称。它包括三个方面:1)表示(Representation):对实际存在的形体进行数学描述。2)设计(Design):创建一个新的形体,调整变量满足既定目标。3)图形表示(Rendering):直观形象的表示出所建模型的图形。3.2表示形体的坐标系世界坐标系(WCS:WorldCoordinateSystem)用户坐标系(UCS:UserCoordinateSystem)观察坐标系(VCS:ViewingCoordinateSystem)规格化的设备坐标系(NDCS:NormalizedDeviceCoordinateSystem)设备坐标系(DCS:DeviceCoordinateSystem)坐标变换3.3几何元素的定义1)点几何造型中的最基本元素。自由曲线、曲面及其它几何形体均可用有序点集表示。用计算机存储、处理、输出形体的实质就是对点集及其连接关系的处理。三维直角坐标系中的点用{x,y,z}或{x(t),y(t),z(t)}表示齐次坐标用n+1维表示,即{x,y,z,h)或{x,y,h}。二维用{x,y}或{x(t),y(t)}表示。点的表示:2)边两个邻面(正则形体)或多个邻面(非正则形体)的交线。直线边由其端点(起点和终点)定界;曲线边由一系列型值点或控制点表示,也可用显式、隐式方程表示。2)边3.3几何元素的定义3)面形体上一个有限、非零的区域,由一个外环和若干个内环界定其范围。面有方向性,一般用其外法矢方向作为该面的正向。3.3几何元素的定义4)环环是有序、有向边组成的面的封闭边界。有内外之分,外环确定面的最大外边界,其边按逆时针方向排序。内环确定面中孔或凸台的边界,其边按顺时针方向排序。外环内环3.3几何元素的定义5)体由封闭表面围成的空间,也是三维欧式空间中非空、有界的封闭子集,其边界是有限面的并集。非正则形体正则形体3.3几何元素的定义6)体素可以用有限个尺寸参数定位和定形的体。常有三种定义形式:(1)从实际形体中选择出来的一组单元实体,如长方体、圆柱体、球体等。(2)由参数定义的一条(或一组)截面轮廓线沿一条(或一组)空间参数曲线作扫描运动而产生的形体。3.3几何元素的定义形体(Object)外壳(Sell)面(Face)环(Loop)边(Edge)点(Vertex)v1v2v3v4v5v6v7v8e1e2e3e10e11e12….Cubef1f2f3f4f5f6e4在计算机中定义几何形体将几何元素按六个层次结构表示。3.4定义形体的层次结构3.5.形体的三种模型1.线框模型wireframemodel2.表面模型surfacemodel3.实体模型solidmodel模型类型优点局限性应用范围线框模型结构简单、易于理解、运行速度快无观察参数的变化;不可能产生有实际意义的形体;图形会有二义性;画二维线框图(工程图)、三维线框图表面模型完整定义形体表面,为其他场合提供表面数据不能表示形体艺术图形;形体表面的显示;数控加工实体模型定义了实际形体只能产生正则形体;抽象形体的层次较低物性计算;有限元分析;用集合运算构造形体1)曲面模型和实体模型均能以线框、消隐、小平面着色、平滑明暗和仿真等类型中的任何一种方式显示。2)线框模型则只能以线框类型方式显示。3)不同的三维模型在需要的时候可以转化。关于三维模型与模型的显示类型三维模型—从模型本身的内部数据来描述形体,是形体的本质属性。模型的显示类型—形体的外在表现形式。实体模型曲面模型曲面模型线框模型*转化过程不能逆转。曲面模型不能转化为实体模型,因为它所包含的信息比实体模型少。线框模型也不能转化为曲面模型,因为它包含的信息比曲面模型少。3.6常用的几何造型方法线框模型、表面模型和实体模型是一种广义的概念。从用户角度看,形体表示以特征表示和构造的实体几何表示(CSG)较为方便;从计算机对形体的存储管理和操作运算角度看,以边界表示(BRep)最为实用。为了适合某些特定的应用要求,形体还有一些辅助表示方式,如单元分解表示和扫描表示。比较常用的造型方法:1.边界表示法(BoundaryRepresentationScheme)通过描述形体的边界来表示一个形体,将形体的边界分成有限个“面”(faces)或“片”(patches),并使每个“面”或“片”由一组边和顶点来确定边界。2.扫描表示法(Sweep)扫描表示法是将一个面域沿某一轨迹移动,以形成特定的几何形体,它是生成形体(或零件)的基本方法。3.构造实体几何法(CSG)ConstructiveSolidGeometry构造实体几何法将简单的形体经过正则集合运算构成复杂形体。一个复杂形体的CSG表示可以看成是一颗有序的二叉树。树的根结点:整个复杂形体,终端结点(叶结点):体素、形体运动的变换参数。非终端结点(中间结点):正则集合运算,或形体的几何变换。(-*)△X(-*)△X平移S1S2△X3)通过对简单实体进行交(INTERSECT)、差(SUBTRACT)、并(UNION)等布尔运算和切割(SLICE),生成复杂三维实体。1.三维实体造型的基本方法1)对简单三维实体可直接创建,如长方体、圆柱、圆球、圆锥等。2)用户先创建二维封闭区域(REGION),再通过拉伸(EXTRUDE)和旋转(REVOLVE)等操作生成三维实体。3.7三维实体造型案例熟练掌握三维实体造型的基本方法及用户坐标系(UCS)等命令是构造三维实体模型的关键,2.坐标系(UCS)a)WCS坐标(二维空间)b)WCS坐标(三维空间)c)UCS坐标绕x轴旋转90°1)在绘制二维图形时,用户只在XOY平面上绘制,Z值为0。X、Y箭头表示当前坐标系统的X轴、Y轴的正方向,Z轴的正向则遵守右手定则。3.7三维实体造型案例a)b)c)要在空间的其他平面上绘制图形时,设计者要自己设立用户坐标系。UCS命令用于在3D空间建立用户坐标系,允许设计者自己设置新原点和在三维空间内旋转实体的XY参考平面。3.7三维实体造型案例AutoCAD的3D命令沿常见几何体(长方体、圆锥体、球体、圆环体、楔体和棱锥体)的外表面创建三维多边形网格。用3D命令构造多边形网格对象时,最后得到的对象表面可以隐藏、着色和渲染。3.常见几何形体3D造型4.将二维图形拉伸为实体在AutoCAD中,使用Draw(绘图)/Solids(实体)/Extrude(拉伸)命令,可以将2D对象沿z轴或某个方向拉伸成实体。拉伸对象可以是任何2D封闭多段线(3顶点数500)、圆、椭圆、封闭样条曲线和面域。1)沿Z轴方向拉伸对象默认情况下,可以沿Z轴方向拉伸对象。指定拉伸的高度和倾斜角度。高度值和角度值可为正或负。拉伸的绝对值不大于90度,默认值为0度。如果倾斜角度或拉伸高度较大,将无法进行拉伸。2)通过指定路径拉伸对象1)拉伸路径可以是开放的,也可以是封闭的,并且路径不能与被拉伸对象共面。如果路径中包含曲线,则该曲线应不带尖角。2)如果路径是开放的,则路径的起点应与断面在同一个平面内。3)如果路径是一条样条曲线,则样条的一个端点应与拉伸对象所在平面垂直。4)如果路径中包含相连但不相切的段,则在连接点处,拉伸会沿段的角平分面斜接此连接点。5)如果沿路径拉伸多个对象,则Extrude(拉伸)命令会确保它们最后终止于同一平面。5.将二维图形旋转成实体在AutoCAD中,还可以使用Draw(绘图)/Solids(实体)/Revolve(旋转)命令,将2D对象绕某一轴旋转生成实体。用于旋转的2D对象可以是封闭多段线、多边形、圆、椭圆、封闭样条曲线、圆环以及封闭区域。包含在块中的对象、有交叉或自干涉的多段线不能被旋转,并且每次只能旋转一个对象。6.布尔运算在AutoCAD中,用户可以对三维基本实体进行并集、差集、交集、干涉4种布尔运算来创建复杂实体。求并运算:用实体或面域之和产生一个实体。工具条:Union求差运算:用实体或面域之差产生一个实体。工具条:Subtract求交运算:用实体或面域的相交部分产生一个实体。工具条:Intersect选择Modify(修改)/SolidsEditing(实体编辑)/Union(并集)命令,可以组合多个实体生成一个新实体。6.布尔运算选择Modify/SolidsEditing/Subtract(差集)命令,可以从一些实体中去掉另一些实体,从而得到一个新的实体。6.布尔运算应用实例一:建立如图所示机件的三维模型绘制矩形绘制和陈列复制圆拉伸图形,移动并旋转坐标系对实体求并集和差集绘制圆柱体绘制圆柱体绘制长方体剖切圆柱体绘制圆柱体绘制长方体对实体求差集消隐未消隐3.2.6常用的几何造型方法线框模型、表面模型和实体模型是一种广义的概念,并不反映形体在计算机内部,或对最终用户而言所用的具体表示方式。从用户角度看,形体表示以特征表示和构造实体几何表示CSG较为方便;从计算机对形体的存储管理和操作运算角度看,以边界表示B-rep最为实用;根据形体的形成特点还有一些方便实用的表示方法:单元分解表示法;扫描表示法;旋转表示法;网格表示法;1.基本体素表示法基本体素表示法用一组参数来定义一簇形状类似但大小不同的物体。这种方法通过对已有的形体作线性变换来产生形体,是最直接的方法。适用于表示工业上已定型的标准件.2.空间位置枚举法空间位置枚举法将空间分割成均匀的立方体网格,每个立方体大小相等,方向相同,互不重叠,可用其中心坐标或某个角坐标来确定。根据实体所占据网格的位置来定义实体的形状和大小,相应的数据结构为三维数组,每一数组元素对应一空间位置,若此位置为实体所占据,则数组元素值相应地为1,否则为零。3.单元分解法单元分解法克服了空间位置枚举法冗余度大的缺点,它允许将实体表示成一些形状相同但大小不同的基本体积单元的组合,这些体积单元不一定是立方体,也不一定固定在某些确定的空间位置上,例如,可将物体内部的相邻区域合并成较大的立方体以节省存贮量。任意两个基本体积单元要么完全分离,要么沿一条线或一个小面精确地在一个角点相连.4.扫描表示法扫描表示法是根据二维或三维形体沿某一曲线(通常为直线或圆弧)推移时的外轮廓的轨迹来定义形体。扫描表示法易于理解和执行,特别适用于生成工业上常用的柱面体和旋转体,它在实体造型系统中常用作简单的造型输入手段。扫描表示法需要两个分量:一个是被扫描的形体,称之为基体;另一个是形体运动的路径。基体可以是曲线、表面、立体;路径可以由解析表达式来定义。5.构造实体几何法(ConstructiveSolidGeometry)构造实体几何法采用基本体素的并、交、差组合来表示实体,简称CSG法.通常用正则集合运算(构造正则形体的集合运算)来实现这种组合,其中可配合执行有关的几何变换。形体的CSG表示可看成是一棵有序的二又树,其终端结点或是体素,或是刚体运动的变换参数。非终端结点或是正则的集合运算,或是刚体的几何变换,这种运算或变换只对其紧接着的子结点(子形体)起作用。CSG树可定义为:<CSG树>::=<体素叶子>|<CSG树><正则集合运算结点><CSG树>|<CSG树><刚体运动结点><刚体运动变量>6.边界表示法BoundaryRepresentation形体的边界表示就是用面、环、边、点来定义形体的位置和形状。边界表示详细记录了构成形体的所有几何元素的几何信息及其相互连接关系——拓扑信息,以便直接存取构成形体的各个面、面的边界以及各个顶点的定义参数,有利于以面、边、点为基础的各种几何运算和操作。直接建立边界模型是很繁琐的,在实践中常常