CAD技术基础第二章图形变换.ppt_第1页
CAD技术基础第二章图形变换.ppt_第2页
CAD技术基础第二章图形变换.ppt_第3页
CAD技术基础第二章图形变换.ppt_第4页
CAD技术基础第二章图形变换.ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

1,第二章 图形变换,图形变换是计算机图形学基础内容之一。,华中科技大学 华铸CAE中心 name:廖敦明 email: 地址:模具国家重点实验室409 电话:87558145,2,主要内容 (6学时),一、变换的数学基础 (参见孙家广的书P358) 二、二维几何变换 三、三维几何变换 四、二维观察变换 五、三维观察变换,请参考 伏玉琛 周洞汝 主编计算机图形学-原理方法与应用华中科技大学出版社,伏玉琛 周洞汝 主编 第7、8 、10、11章,3,图形变换的特点 线性变换,属性不变,拓扑关系不变。 图形变换的作用 1. 把用户坐标系与设备坐标系联系起来; 2. 可由简单图形生成复杂图形; 3. 可用二维图形表示三维形体; 4. 动态显示。,4,一、矢量(Vector)、矩阵(Matrix)及运算 1. 矢量的含义 矢量:是由n个实数组成的集合。 如:二维矢量(x,y),三维矢量(x,y,z),(x,y),一、变换的数学基础,5,2. 矢量运算,假定:V1(x1,y1,z1), V2(x2,y2,z2)为两个矢量,则有: 矢量和 V1+V2= (x1+x2, y1+y2,z1+z2) 矢量点积 V1V2 = x1*x2 + y1*y2 + z1*z2 矢量叉积 V1V2 =(y1z2-y2z1, z1x2-z2x1,x1y2-x2y1) 矢量长度 |V1| = (V1 V1)1/2 = (x1*x1+y1*y1+z1*z1) 1/2,6,3. 矩阵的含义 矩阵:由mn个数按一定位置排列的一个 整体,简称mn矩阵。,A=,其中,aij 称为矩阵A的第 i 行第 j 列元素,7,4. 矩阵运算 加法 设A,B为两个具有相同行和列元素的矩阵 A+B = 数乘 kA = k*aij|i=1m, j=1,n =,8,乘法 设A为32矩阵,B为23矩阵 C = A B = C=Cmp = Am n Bnp cij = aik*bkj,k=1,n,9,单位矩阵 在一矩阵中,其主对角线各元素aii=1,其余皆为0的矩阵称为单位矩阵。n阶单位矩阵通常记作In Am n = Am n In,10,逆矩阵 若矩阵A存在AA-1=A-1A=I,则称A-1为A的逆矩阵 矩阵的转置 把矩阵A=(aij)mn的行和列互换而得到的nm矩阵称为A的转置矩阵,记作AT 。 (AT) T = A (A+B)T = AT + BT (aA)T = aAT (AB)T = BT AT 当A为n阶矩阵,且A=AT ,则 A是对称矩阵。,11,5. 矩阵运算的基本性质 交换律与结合律 A+B=B+A; A+(B+C)=(A+B)+C 数乘的分配律及结合律 a(A+B) = aA+aB; a(A B) = (aA) B=A (aB) (a+b)A = aA + bA a(bA) = (ab)A,12,矩阵乘法的结合律及分配律 A(B C) = (A B)C (A+B) C = A C+ B C C (A+B) = C A + C B 矩阵的乘法不适合交换律 A B /= B . A,13,1. 平移变换(translation) 从点Px,y平移到点Px,y x = x + m y = y + n,二、二维几何变换,14,2 旋转变换,(x,y),(x,y),一个点绕原点的旋转,逆时针方向为正。,15,3 比例变换,P(x,y),P(x,y),x = x*sx y= y*sy,Sx = Sy: 均匀缩放。 Sx = Sy 1,放大 Sx = Sy 1,缩小 Sx 不等于Sy时,沿坐标轴方向伸展和压缩,Y,X,16,4. 对称变换 关于X轴的对称变换 P(x,y) 对称点为 P(x, -y) 关于Y轴的对称变换 P(x,y)对称点为P(-x, y) 关于坐标原点的对称变换 P(x,y) 关于原点的对称点为P(-x,-y),17,1. 齐次坐标 齐次坐标就是一个 n 维矢量的(n+1)维矢量表示。 例如:二维坐标点P(x,y)的齐次坐标为: ( h*x, h*y, h ) 。 二维坐标与齐次坐标是一对多的关系。通常都采用规范化的齐次坐标,即取 h=1。 (x,y) 的规范化齐次坐标为 (x,y,1)。,变换的矩阵表示,18,齐次坐标的作用: 1. 将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二维、三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法。 2. 便于表示无穷远点。,19,二维几何变换的矩阵表示,20,1. 恒等变换 2. 比例变换,21,3. 对称变换 关于X轴的对称变换 关于Y轴的对称变换,22,关于坐标原点的对称变换,习题:请写出二维错切变换的变换矩阵。,23,5. 旋转变换 其矩阵表示为:,(x,y),(x,y),24,6. 平移变换,P(x,y),P(xy),m,n,X,Y,25,(m,n),(x,y),(x, y),(x1,y1),(x2,y2),m,n,1,2,3,(x,y),7. 绕任一点的旋转变换 假定该任一点为P(m,n), 旋转角为,26,T1,T2,T3,27,T =T1 T2 T3 称为矩阵级联,也称复合变换。,28,几何变换的几点说明: (1)平移变换只改变图形的位置,不改变图形的大小和形状。 (2)旋转变换仍保持图形各部分间的线性关系和角度关系,直线长度不变。 (3)比例变换可改变图形的大小和形状。 (4)错切变换引起图形角度关系的改变,设置导致图形发生畸变。 (5)拓扑不变的几何变换,不改变图形的连接关系和平行关系。,29,平移变换 是指空间上的立体从一个位置移动到另一个位置时,其形状大小均不发生改变的变换。 x y z 1 = x+dx y+dy z+dz 1 =,三、三维几何变换,30,轴向比例变换 x = ax y = ey x y z 1=ax ey jz 1 z = jz 矩阵表示:,注意:比例变换与参考点有关,31,全比例变换 当变换矩阵取下列值时: x y z 1T = x y z s=x/s y/s z/s 1 当s1, 沿三个轴向等比例缩小 当0s1, 沿三个轴向等比例放大 (轴向比例变换与全比例变换的关系),32,对称变换 在二维变换下,对称变换是以线和点为基准,在三维变换下,对称变换则是以面、线、点为基准的。,33,对称于XOY平面 x y z 1 = x y -z 1=x y z 1 对称于YOZ平面 x y z 1 = -x y z 1=x y z 1 对称于XOZ平面 x y z 1 = x -y z 1=x y z 1,34,那么,分别对称于X、Y、Z轴和坐标原点的变换矩阵是什么?,35,旋转变换 绕X轴变换 空间上的立体绕X轴旋转时,立体上各点的X坐标不变,只是Y、Z坐标发生相应的变化。 x= x y= cos(+) = y cos- z sin z= sin(+) = y sin+z cos,X,Y,Z,(y, z),(y, z),Y,Z,O,O,(y, z),(y, z),注意:旋转变换与参考点有关,36,矩阵表示为:,37,绕Y轴旋转 此时,Y坐标不变,X,Z坐标相应变化。 x= sin(+) = x cos + z sin y= y z= cos(+) = z cos- x sin,X,Y,Z,(x, z),(x, z),X,Z,O,O,38,矩阵表示为,39,绕Z轴旋转 此时,Z坐标不变,X,Y坐标相应变化。 x= cos(+) = x cos y sin y= sin (+) = x sin+ y cos z= z,X,Y,Z,(x,y),(xy),X,Y,O,O,40,矩阵表示为:,41,组合变换 空间一点绕空间任一轴线的旋转变换。要通过将几个基本的变换组合在一起,得到该组合变换。 假定空间任一直线的方向矢量分别为:(l,m,n) 并经过原点,42,能否转换成绕X、Y或Z轴旋转的变换? ON绕Z轴旋转2 到XOZ平面上,然后再绕Y轴旋转1,即可与Z轴重合。,O,N,2,1,X,Y,Z,43,这样,可得空间上任一点绕ON轴旋转的变换过程如下: 1)首先通过两次旋转,使ON轴与Z轴重合; 2)然后使点绕Z轴旋转角; 3)最后通过与1)相反的旋转,使ON轴回 到原来的位置。 假设,绕Z轴的旋转 -2 矩阵为T1 绕Y轴的旋转 -1 矩阵为T2 绕Z轴的旋转 矩阵为T3 绕Y轴的旋转 1 矩阵为T4 绕Z轴的旋转 2 矩阵为T5,44,则总体变换矩阵为: T = T1 T2 T3 T4 T5 由上推导可看出,只要能求出1 、2的值,即可通过上式获得绕ON轴的变换矩阵。 由于矢量 (0 0 1)绕Y轴旋转1 ,再绕Z轴旋转2 即可与ON轴重合。即:,45,l m n 1 = sin1 cos2 sin1sin2 cos1 1 l = sin1cos2 m= sin1sin2 n = cos1 从而通过上式即可得到1、2 的值。,46,cos1= n sin1=sqrt(l2+m2) cos2= l/sqrt(l2+m2) sin2=m/sqrt(l2+m2),47,问题:当任一轴线的端点不在原点时,此时应如何计算变换矩阵?,48,四、二维观察变换,观察流程 观察参考坐标系 窗口到视区的坐标变换 裁剪操作 点的裁剪 线段的裁剪,49,二维观察流程,建模 变换,观察 变换,视见 变换,工作站 变换,MC,WC,VC,NDC,DC,MC-建模坐标系(Modeling Coordinate System) WC-世界坐标系(World Coordinate System)用户坐标系 VC-观察坐标系(Viewing Coordinate System) NDC-规范化设备坐标系(Normalized device Coordinate System) DC-设备世界坐标系(Device Coordinate System),50,观察参考坐标系,XY- UV 观察坐标系原点P0,观察矢量V Mwc,vc= T . R T-将观察坐标系原点移动到世界坐标系原点 R-将观察坐标系转动到与世界坐标系重合,51,窗口 观察坐标系(或世界坐标系)中要显示的矩形区域 视区 窗口映射到规范化设备坐标系的矩形区域 视见变换 从窗口映射到视区 工作站变换 从规范化设备坐标系到设备坐标系,52,Window,Viewport,Window-Viewport Transformation,观察坐标系,规范化设备坐标系,0,1,1,X,Y,V,U,53,窗口的位置及大小: 左下角点为Wc(wx,wy), 长为WL,高为WH; 视区的位置及大小: 左下角点Vc(vx,vy), 长为VL,高为VH。,窗口到视区的坐标变换,54,可得如下坐标间关系式:,Wc(Wx,Wy),Vc(Vx,Vy),WL,WH,VL,VH,窗口,视区,55,当a!=c时,即x方向的图形变化与y方向不同时,视图区中的图形会发生伸缩变化。 注意:当有多窗口、多视区时,要正确选用对应的窗口和视区。,W1,W2,V1,V2,56,二维裁剪,就是在一个图形的整体中,把窗口的内部分和窗口外部分正确地分离开来。 边界: 矩形边界 多边形边界 圆和曲线边界 裁剪对象: 点, 线, 区域, 曲线, 文字,57,58,点的裁剪,P(x,y) W(xmin,xmax,ymin,ymax) if ( xmin =x= xmax ) and ( ymin =y= ymax) then display P(x,y),59,线段的裁剪,Cohen-Sutherland 线段裁剪法 梁友栋-Barsky 线段裁剪法,60,线段和窗口的关系,61,该法的基本思想是: 1) 首先判断线段是否完全位于窗口内, 如果是,则输出原线段, 如果不是,那么再进而判断是否完全位于窗口外, 若是,则排除该线段,不输出。 2) 如果以上测试都不满足的话,那么就将该线段用窗口边线分割为二段,然后再回到1) 进行上述测试。,编码法(Cohen-Sutherland算法),62,实现方法 将窗口边线两边延长,得到九个区域,每一个区域都用一四位二进制数标识,直线的端点都按其所处区域赋予相应的标识码。 第一位 1:点处于左边框线的左边(xxr); 第三位 1:点处于下边框线的下边(yyt);,上 下 右 左 1 0 0 1,63,上 下 右 左 1 0 0 1,64,1、如果某线段的两端点的两个四位代码全为零时那么该线段完全位于窗口内; 2、如果两端点的标识码的按位与运算结果不为零,那么该线段必位于窗口外。 3、如果两端点代码都不为零,但code1 & code20时,属于第三种情况,找交点,剪切线段。 如果线段被分割,端点有了新的代码,然后再进行上述测试,测试结果是必有一段在窗口之外,可被排除,另一段再重复上述处理过程。 如何判定该线段与窗口的哪条边求交呢? 编码中对应位为1的边。,65,梁友栋-Barsky 线段裁剪法,线段的参数表示 x=x1+(x2-x1)u= x1+x.u y=y1+(y2-y1)u= y1+y.u ( 0=0 y=0 称xL为始边, xR为终边 yB为始边, yT为终边,属于:参数化裁剪算法(CyrusBeck算法)的特例,66,定义直线的参数化方程为: x = x1 + u x y = y1 + uy 0u1 参数化形式的裁剪条件: XL x1 + ux XR YB y1 + uy YT 这四个不等式可以表示为如下形式: u*Qi Di ( i =L,R,B,T) 改写成另一种形式: ti= Di / Qi (i=L,R,B,T),67,交点计算 设p1p2与两始边的交点在 u=t0, u=t1 与两终边的交点在 u=t2, u=t3 可见段两端点在u=u0, u=u1 u0=max(t0,t1,0) u1=min(t2,t3,1) 如果u0u1,则直线位于窗口外,t0,t1,t2,t3,0,1,68,始边和终边的确定及交点计算 令 QL= - x DL= x0-xL QR= x DR= xR-x0 QB= - y DB= y0-yB QT= y DT= yT-y0 交点为 ti= Di / Qi i=L,R,B,T Qi 0 ti为与终边交点参数 Qi =0 Di 0 时, 分析另一D, 如QL= QR=0 且 DL =0, DR =0 时不必求 ti (因为在垂直方向无交点,与XL、XR无交点),(AB),(CD),C,D,A,B,t0,t1,t2,t3,0,1,69,五、 三维观察变换,三维观察流程 观察坐标系 投影变换 一般情况下三维视图的计算,70,三维观察流程,模型坐标 模型变换 世界坐标 观察变换 观察坐标 投影变换 投影坐标 工作站变换 设备坐标,3D,2D,71,照相的过程,72,观察坐标系的建立,指定观察参考点P 该点是观察坐标系的原点。 可以位于物体的附近,也可以位于物体的内部。,73,74,指定观察方向N 是观察坐标系Z轴的正方向, 也是观察平面的法向。 两种方法: 1. 直接指定一个世界坐标系的向量 2. 定义一个观察点,以这个观察点和观察坐标原点的连线为观察方向。,75,指定一个观察向上(view-up)向量V 观察坐标系Y轴的方向,76,观察平面,物体投影到观察平面上形成二维场景视图 观察平面平行于XvYv平面 位置由它到观察坐标原点的距离确定。,77,观察变换,观察坐标系 右手坐标系 左手坐标系,观察坐标系的作用: 1、指定裁剪空间,显示输出范围 2、定义观察平面(投影平面),3D WC 转换 NDC,78,变换顺序,平移观察参考点到世界坐标系原点 旋转,使观察坐标系的Xv,Yv,Zv轴和世界坐标系的X,Y,Z轴重合,79,旋转矩阵的直接算法,使用观察坐标系的单位向量 给定向量N和V,计算出各轴的单位向量,80,旋转矩阵,81,投影变换,把三维物体变为二维图形表示的过程称为投影变换。 从投影中心引到三维物体上每一点的射线与投影平面的交点,称为物体的投影,A,B,A,B,B,A,A,B,A,B,A,B,透视投影 正平行投影 斜平行投影 垂直 不垂直,82,投影变换的种类,A,B,A,B,B,A,A,B,83,平行投影:投影中心与投影面间距离为无穷远; 正平行投影:投影方向和投影面垂直。 三视图:三个投影面和坐标轴相互垂直。 正轴侧:投影面和坐标轴呈一定的关系。 斜平行投影:投影方向和投影面不垂直。 透视投影:投影中心与投影面间距离为有限;,A,B,A,B,B,A,A,B,A,B,A,B,透视投影 正平行投影 斜平行投影 垂直 不垂直,84,正平行投影(三视图) 工程制图中常用到的三视图,是由空间一物体向三个互相垂直的投影面作正投影得到的。这三个投影面分别称为:正投影面V(ZOX),侧投影面W(YOZ),水平投影面H(XOY)。,V,W,H,V,W,H,X,Y,Z,dz,dx,Z,X,Y,Y,85,正投影视图 正投影是将立体向V面投影得到的,投影结果为: x = x; y=0; z=z 为将点(x y z) 变换为(x y z),只需将点(x y z)作 如下变换即可:,86,侧投影视图 先将立体向W面作正投影(X坐标取为0); 然后绕Z轴旋转90,使与V面处与同一平面; 最后使图形沿X轴负向平移一个距离dx,使正投影和侧投影保持一个距离。,87,水平投影视图 先将立体向H面作正投影,此时Z坐标取0; 然后使水平投影面绕X轴旋转-90,使与正投影面处于同一平面; 最后让图形沿Z轴平移dz的值,使水平投影与正投影拉开一定距离。,88,正轴测投影 轴测图是一种简单的立体图形,能给人一种直观的立体形状。由于这种投影的投影平面不与立体的轴线垂直,同时可见到物体的多个面,因而可产生立体效果。经过正轴测投影变换后,物体线间的平行性不变,但角度有变化。,89,正三轴测:沿三个轴线的变形系数不同; 正二轴测:沿二个轴线的变形系数相同; 正轴测: 沿三个轴线具有相同的变形系数。 正轴测投影变换矩阵的一般形式:,90,下面主要讨论正二测和正轴测的投影变换矩阵,

温馨提示

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

评论

0/150

提交评论