计算机辅助设计技术-第6章_图形变换3_第1页
计算机辅助设计技术-第6章_图形变换3_第2页
计算机辅助设计技术-第6章_图形变换3_第3页
计算机辅助设计技术-第6章_图形变换3_第4页
计算机辅助设计技术-第6章_图形变换3_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、机械机械CAD 技术基础技术基础图形处理技术基础图形处理技术基础 4.1 图形的几何变换图形的几何变换4.2 图形的消隐技术图形的消隐技术4.3 图形的光照处理技术图形的光照处理技术4.4 图形裁剪技术图形裁剪技术 4.5 图形生成方法图形生成方法 参考文献:参考文献:姚英学,蔡颖. 计算机辅助设计与制造. 北京:高等教育出版社,2002 蔡汉明,陈清奎. 机械CAD/CAM技术. 北京:机械工业出版社,2003图形几何变换的基本原理图形几何变换的基本原理图形变换一般是指对图形的几何信息经过几何变换后产生新的图形,它提供了构造或修改图形的方法。除图形的位置变动外,还可以将图形放大或缩小,甚至对

2、图形作不同方向的拉伸来使其扭曲变形。 图形是点的集合图形是点的集合在二维平面中,任何一个图形都可以认为是点之间的连线构成的。对于一个图形作几何变换,实际上就是对一系列点进行变换。 点的表示点的表示在二维平面内,一个点通常用它的两个坐标(x,y)来表示,写成矩阵形式则为: 4.1 图形的几何变换图形的几何变换或表示点的矩阵通常被称为点的位置向量表示点的矩阵通常被称为点的位置向量,以下将采用行向量表示一个点。如有三角形的三个顶点坐标a(x1, y1), b(x2, y2), c(x3,y3),用矩阵表示则记为:变换矩阵变换矩阵若A、B、M都是矩阵,且AM=B,则M被称为变换矩阵。变换矩阵为点的变换

3、提供了工具。设变换矩阵 点的变换点的变换将点的坐标x y与变换矩阵M相乘,变换后点的坐标记作x y。则x y即可见,新点的位置取决于变量新点的位置取决于变量A、B、C、D的值。的值。 在系统中,几何图形是最基本的元素。图形由图形的顶点坐标、顶点之间的拓扑关系以及组成图形的面和线的表达模型所决定。图形的几何变换,归根结底是点的坐标变图形的几何变换,归根结底是点的坐标变换。换。 对于平面上的点,有如下齐次变换矩阵: 其中(x,y)为变换之前的点坐标,(x*,y* )为变换以后的点坐标,T为变换矩阵。 对于由多个点、线、面组成的二维、三维图形,有: 式中:V-变换以前图形的顶点坐标矩阵; V* -变

4、换以后图形的顶点坐标矩阵; T-图形变换矩阵。 对于二维图形,T是3*3阶齐次矩阵;对于三维图形,T是4*4阶齐次矩阵。图形变换的主要工作就是求解变换矩阵T。 一、二维图形的基本变换一、二维图形的基本变换在二维平面中,图形变换矩阵可表示为: 其中左上角左上角a、b、c、d是对图形进行比例(缩放)、对称(镜比例(缩放)、对称(镜像)、旋转、错切等变换像)、旋转、错切等变换;左下角左下角e、f是对图形进行平移变换平移变换;右上角右上角p、q对图形进行透视变换透视变换;右下角右下角s是对图形进行整体比整体比例变换例变换。当s1时,图形缩小;当s=1时,图形大小不变。即变换后的 坐标均为原坐标x,y的

5、1/s倍 1、恒等变换:、恒等变换:变换矩阵是单位矩阵2、比例变换:比例变换:比例变换使用比例因子乘以图形的点集,使图形放大或缩小的变换。 齐次坐标比例变换为 比例变换见右图 (1)当a = e =1时,为恒等比例变换,即图形不变;(2)当a = e 1时,图形沿两个坐标轴方向等比放大。(3)当a = e 0,图形沿+x方向做错切;b0,图形沿+y方向做错切;d1,则整个图形缩小;若s1,则整个图形放大。 右图为对一三棱锥分别实行局部比例变换(X方向放大1倍;Y方向缩小1倍;Z方向比例不变)和全比例放大1倍的变换。 3、三维错切变换、三维错切变换 与二维类似,指图形沿X、Y、Z三个方向的错切变

6、换。其变换矩阵为: 可见,主对角线四个元素均为1,第4行和第4列其它元素均为0。 错切变换是画斜轴测图的基础,按方向不同,可分为六种基本变换。 沿X轴含Y向错切,变换矩阵为:,变换矩阵为: 错切变换为: ,即 x=x+Dy, y=y, z=z,如下图所示: 沿X轴含Z向错切,变换矩阵为: 错切变换为: 沿Y轴含X向错切,变换矩阵为: 错切变换为: 沿Y轴含Z向错切,变换矩阵为: 错切变换为: 沿Z轴含X向错切,变换矩阵为: 错切变换为: 沿Z轴含y向错切,变换矩阵为: 错切变换为: 4、三维旋转变换、三维旋转变换 二维变换中,图形绕原点旋转的变换实际上是X0Y平面图形绕Z轴旋转的变换。三维旋转

7、变换应按绕不同轴线旋转分别处理。同样的,旋转角逆时针转动为正,顺时针转动为负。 绕绕Z轴旋转的变换矩阵轴旋转的变换矩阵 绕绕X轴旋转的变换矩阵轴旋转的变换矩阵 绕绕Y轴旋转的变换矩阵轴旋转的变换矩阵 5、三维镜像(对称)变换、三维镜像(对称)变换 标准的三维空间对称变换是相对于坐标平面进行的。 对X0Y平面的对称变换,其变换矩阵为: 对Y0Z平面的对称变换,其变换矩阵为: 对X0Z平面的对称变换,其变换矩阵为: 根据投影中心与投影平面之间距离的不同,投影可分为平行投影平行投影和透视投影透视投影。 透视投影的投影中心到投影面之间的距离是有限的,而平行投影的投影中心到投影面之间的距离是无限的。如下

8、面动画所示(请点击投影类型):投影变换投影变换 把三维坐标表示的几何形体变为二维图形的过程叫投影变换,投影变换分为: 正平行投影(三视图)正平行投影(三视图) 投影方向垂直于投影平面时称为正平行投影,我们通常说的三视图(主视图、俯视图、左视图)均属正平行投影。 投影过程请观看下面动画: 三面视图的变换矩阵为: 主视图变换矩阵主视图变换矩阵 (取XOY平面上的投影为主视图,只须将立体图的Z坐标变为零)俯视图变换矩阵俯视图变换矩阵 其中d值是为了使俯视图与主视图间保持一定距离。 左视图变换矩阵左视图变换矩阵 其中d值是为了使左视图与主视图间保持一定距离。 4.2 图形的消隐技术图形的消隐技术消隐的

9、概念与作用消隐的概念与作用 在使用显示设备描绘物体的图形时,必须把三维信息经过某种投影变换,在二维的显示表面上绘制出来。例如,轴测图和透视图,就是通过轴测变换或透视变换,求出所有顶点的投影点,再把各点连结起来。下图中第一个图形代表的是后边哪一哪一个呢个呢? 由于投影变换失去了深度信息,往往导致图形的二义性。要消除二义性,就必须在绘制时消除实际不可见的线和面,习惯上称作消除隐藏线和隐藏面,消除实际不可见的线和面,习惯上称作消除隐藏线和隐藏面,或简称为消隐。或简称为消隐。 消隐算法的测试方法消隐算法的测试方法 针对不同的显示对象和显示要求,会有不同消隐算法与之相适应。 1、重叠测试、重叠测试 许多

10、物体的投影是由若干个多边形构成的,将这些多边形两两判别,看它们是否有重叠部分,如果不重叠,说明它们肯定不互相遮挡。这种方法就叫重叠测试。2、包含性测试、包含性测试 测试点与多边形的包含关系有两种方法: (1)射线交点数算法)射线交点数算法 (2)夹角求和算法)夹角求和算法 当当 时,则被测试点在多边形内部时,则被测试点在多边形内部(如点如点A)当当 时,则被测试点在多边形的外部时,则被测试点在多边形的外部(如点如点B)2i 0i3、深度测试、深度测试 深度测试是用来测试一个物体遮挡另一个物体的基本方法。常用的有优先级测试优先级测试和物体空间测试物体空间测试。 优先级测试优先级测试4、可见性测试

11、、可见性测试 可见性测试主要用来判别物体自身各部分哪些部分没有被其自身其它部分遮挡即可见的,哪些部分被其自身其它部分遮挡即不可见的。其中,其中,N为外法矢,为外法矢,S为视线矢量为视线矢量则该表面可见则该表面可见常用消隐算法常用消隐算法根据消隐对象不同,消隐算法可分为两类:若消除的是物体上不可见的线段,称为线消隐线消隐;若消除的是物体上不可见的面,称为面消隐面消隐。根据消隐空间的不同,消隐算法又可分为两类: 物体空间的消隐算法物体空间的消隐算法这类算法是将物体表面上的k个多边形中的每一面与其余的k-1个面进行比较,精确地求出物体上每条棱边或每个面的遮挡关系。图形空间的消隐算法图形空间的消隐算法

12、在消隐算法中,图像空间就是上述的屏幕坐标空间。这类算法对屏幕的每一像素进行判断,以决定物体上哪个多边形在该像素点上是可见的。若屏幕上有m*n个像素点,物体表面上有k个多边形,则该类消隐算法的计算量将正比于m*n*k。 消隐的基本思想很简单,但要真正实现却要耗费很长的判别和运算时间。消消隐的基本思想很简单,但要真正实现却要耗费很长的判别和运算时间。消隐算法的处理效率将是决定能否被有效采用的关键。隐算法的处理效率将是决定能否被有效采用的关键。 1.Warnock算法算法Warnock算法递归分割窗口多边形与窗口之间的关系Warnock细分算法举例2.Catmull曲面分割算法曲面分割算法曲面分割3

13、.Z缓冲器扫描线算法缓冲器扫描线算法扫描平面与扫描窗口4.3 图形的光照处理技术图形的光照处理技术采用消隐技术消除了隐藏线和隐藏面后,图形就没有了二义性问题,但仅仅这样还不够,还要考虑创造所谓真实感图形真实感图形。光照处理是绘制真实感图形所需的重要技术之一,它模拟光线照射在物体上,物体反映出来的感观效应,通过必要的算法,实现实际物体在计算机上的虚拟。 从物体表面反射或折射出来的光的强度取决于很多因素: 首先是光源的性质光源的性质,包括点光源、多点光源或分布光源、光的波点光源、多点光源或分布光源、光的波长、光源的位置长、光源的位置等。 其次是物体的表面性质物体的表面性质,包括物体表面形状、表面性

14、质(反射率、表面形状、表面性质(反射率、折射率、光滑度折射率、光滑度等)以及一些表面细节(颜色、纹理表面细节(颜色、纹理等)。 最后是物体周围的环境、视点位置物体周围的环境、视点位置以及不同人对光的感觉差异不同人对光的感觉差异等也会对光强产生影响。它们通过对光的反射和折射形成环境光,在物体表面上产生一定的照度。它们还会在物体上形成阴影。 为了使显示的图形更加逼真,要考虑到物体表面由于光照而产生的明暗变化,这需要对物体进行光照处理光照处理。一、图形的光照处理基本原理一、图形的光照处理基本原理对物体进行光照处理需要建立合适的光照模型,并通过显示算法将物体在显示器上显示出来。 当光照射到一个物体的表

15、面上时,物体对光会产生反射、透射和散射反射、透射和散射作用,物体内部还会吸收吸收一部分光。这可用如下等式表示:入射光入射光=反射光反射光+透射光透射光+散射光散射光+吸收光吸收光用简单光反射模型模拟光,照射到物体表面时,产生了光的反射效果,它假定光源是点光源,物体是非透明体,于是透射光和散射光将近似于零。二、简单光反射模型二、简单光反射模型漫反射漫反射 当光线照射到表面粗糙、无光泽的物体上,物体表面表现为漫反射形式,即光线沿各不同方向都做相同的散射。故而从各个角度观察,物体都有相同的亮度。1cos( )dI kIrkk为适当常数,为适当常数,r为透视点到表面的距离为透视点到表面的距离镜面反射镜

16、面反射 光照射到光滑表面,镜面反射的光取决于入射光的角度、波长和反射表面的材料性质。环境光环境光 光源照射到周围物体上,反射出的光照射到该物体上也能让我们看见它。这种光叫环境光或泛光环境光或泛光。环境光亮度均匀,通常由多个物体经多重反射形成,因此无法精确计算光强。在简单光照模型中,把它处理为常数常数。 几种光各有自己的特色,综合起来就是作用在物体上的综综合光强合光强。 恒定亮度法恒定亮度法 恒定亮度法就是对于整个多边形只算出一个亮度值,用这个亮度显示物体上多边形所在的那个面。这种方法只适合于在某些特定条件下,如物体表面仅暴露于背景光下,没有表面图案、纹理或阴影时。 三、光照处理的基本算法三、光

17、照处理的基本算法 马赫带效应 GouraudGouraud插值法插值法( (亮度插值法亮度插值法) ) 这种方法消除了亮度上的不连续性,它线性地改变每个多边形平面亮度,使亮度值同多边形边界相匹配,解决了相邻平面之间亮度的不连续性,在一定程度上消除了马赫带效应。但它仅能保证在多边形两侧亮度的连续性,而不能保证亮度变化的连续性,故不能完全消除马赫带效应。同时由于采用插值的方法,使得镜面反射所产生的高光效果很不理想,故Gouraud插值法对于只考虑漫反射的模型效果较好。 此外,进行光照处理的还有双线性插值法双线性插值法(Phong插值法)、整体光照模型整体光照模型和光线跟踪算法光线跟踪算法、辐射度法

18、辐射度法等,而且还可派生出一些阴影生成法阴影生成法,来获得更好的真实感。顶点法线亮度线性插值4.4 图形裁减技术图形裁减技术用户坐标系用户坐标系 CADCAM中图形数据的表达通常用笛卡尔右手坐标系通常用笛卡尔右手坐标系,称之为用户坐标系用户坐标系或世界坐标系世界坐标系(world Coordinates, WC)。其坐标为实数,无范围限制。窗口窗口在计算机绘图中,常常遇到这样的情况:不同时刻、针对不同目的、只关心整幅图形的不同部位,而对其它部分暂时不感兴趣,此时,希望关心的这部分图形能够尽量清晰地显示出来。于是,大多数的图形软件都提供了这样一个功能:即用户可以在输入的图形上选定一个观察区域。这

19、个观察区域观察区域被称为窗口窗口。窗口是在用户坐标系中定义的确定显示内容的一个区域。 在二维平面,通常定义窗口为一矩形区域,它的大小和位置在用户坐标上用户坐标上表示,用四个变量代表窗口左下角和右上角点的坐标,即: 一、常用的坐标系一、常用的坐标系1min2max3min4maxWXWWXWWYWWYW设备坐标系设备坐标系 图形终端采用的坐标系称为设备坐标系图形终端采用的坐标系称为设备坐标系(Device Coordinates、Dc)。它是有范围的。视区视区 从世界坐标系中用窗口取下来的图形要在设备上的一个矩形区域画出来。这个矩形区域叫视口,或叫视区视区(Viewport)。视区是在设备坐标系

20、设备坐标系(通常是屏幕)中定义的一个定义的一个区域区域,用于输出窗口中的图形。视区决定了窗口中的图形要显示于屏幕上的位置和大小。视区是一个有限的整数域。 视区是一个与设备密切联系的概念,显示终端的平面和绘图仪的幅面都是用来表现图形的二维平面,而且是个有限的平面。通常也用四个变量指示视区两个角点的坐标,即: 视区也可以嵌套,还可以在同一物理设备上定义多个视区,视区也可以嵌套,还可以在同一物理设备上定义多个视区,分别作不同的应用或分别显示不同角度、不同对象的图形。分别作不同的应用或分别显示不同角度、不同对象的图形。 1min2max3min4maxVXVVXVVYVVYV二、窗视变化二、窗视变化

21、窗口与视区可以是多个,而且几个窗口或几个视区可以重叠或嵌套。窗口与视区不一定都是矩形区域,也可能是圆形或多边形区域。,而在绝大多数情况下,窗口与视区无论是大小还是单位都不相同。为了把选定的窗口内容在希望的视区上表现出来,必须进行坐标变换坐标变换。将用户坐标系和设备坐标系放到一起,使原点重合,x轴和y轴的方向分别一致。(xWL,yWB)(xWR,yWT)窗口视区(xVL,yVB)(xVR,yVT)从窗口到视区的变换由三个基本变换复合而成。(1)平移窗口,使左下角和原点重合。 (2)比例变换,使窗口和视区大小相等。比例因子为 (3)平移窗口,使左下角和(xVL,yVB)重合。,WLWBxxyy V

22、RVLXWRWLVTVBYWTWBxxsxxyysyy,VLVBxxyy 这三个变换的变换矩阵分别是三个变换之积为由 可推算出图形出窗口到视口的变换计算式为11000101WLWBTxy20000001XYsTs31000101VLVBTxy1 2300001XYVLXWLVBYWBsTTT Tsxs xys y11VVWWxyxyT()()VXWWLVLVYWWBVBxsxxxysyyy视区与窗口的关系:视区与窗口的关系:视区不变,窗口缩小或放大时,显示的图形会相应放大或缩小。视区不变,窗口缩小或放大时,显示的图形会相应放大或缩小。窗口不变,视区缩小或放大时,显示的图形会相应缩小或放大。窗口

23、不变,视区缩小或放大时,显示的图形会相应缩小或放大。视区纵横比不等于窗口纵横比时,显示的图形会有伸缩变化。视区纵横比不等于窗口纵横比时,显示的图形会有伸缩变化。窗口与视区大小相同、坐标原点也相同时,显示的图形不变。窗口与视区大小相同、坐标原点也相同时,显示的图形不变。三、裁剪三、裁剪 为了正确显示窗口内的全部图形,必须明确把图形分为窗口内的部分(可见部分)和窗口外的部分(不可见部分),尤其是与窗口边界相交的那些图形。区分可见与不可区分可见与不可见部分的过程就称为裁剪。见部分的过程就称为裁剪。 裁剪处理的基础有两点:点在裁剪区域内外的判断点在裁剪区域内外的判断图形与裁剪区域边界交点的计算图形与裁

24、剪区域边界交点的计算右图中,窗口的两个顶点的坐标为(xWL,yWB)和(xWR,yWT),则点P(x,y)可见的充分必要条件是满足以下条件:WLWRWBWTxxxyyy判别一条直线段的可见性可依据直线的两个端点与窗口的相对位置,这种位置关系可归纳为四种情况(如图):(1)如果直线的两个端点都在窗口内两个端点都在窗口内如直线段AB则该直线段是完全可见完全可见的;(2)如果直线的两个端点都在窗口外都在窗口外,并且是在窗口某边的同一侧同一侧,如直线段CD,则该直线完全不可见完全不可见。同一侧是指线段的两个端点同时位于窗口左面、右面、上面、或下面;(3)如果直线的两个端点都在窗口外两个端点都在窗口外,

25、并且不在窗口的同侧如直线段GH、IJ和KL,此时要求出直线段与窗口边的交点并对其性质进行分析,才能确定是否需要裁剪; (4)如果直线的一个端点在窗口内一个端点在窗口内,另一个端点在窗口外另一个端点在窗口外如直线段EF,则需要对它裁剪即求出它与窗口边框的交点,该交点和窗口内的那个线段端点成为可见线段的两个端点。 可见,为了判别直线的可见性,可先求出直线与窗口边框的交点,然后对交点性质作先求出直线与窗口边框的交点,然后对交点性质作分析。分析。这种直观判别的思路简单,但效率很低,实际裁剪图形时,还要依靠各种算法。常见的裁剪法有:编码裁剪法、中点分割裁剪法逐、边裁剪法、矢量剪取法、编码裁剪法、中点分割裁剪法逐、边裁剪法、矢量剪取法、等。下面的动画说明了对直线裁剪的原理。 4.5 图形生成方法图形生成方法 一幅图最简单的

温馨提示

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

评论

0/150

提交评论