《图形变换与齐次坐标》由会员分享,可在线阅读,更多相关《图形变换与齐次坐标(45页珍藏版)》请在金锄头文库上搜索。
1、图形变换是计算机图形学基础内容之一n n几何变换,投影变换,视窗变换n n线性变换,属性不变,拓扑关系不变。n n作用:n n把用户坐标系与设备坐标系联系起来;把用户坐标系与设备坐标系联系起来;n n可由简单图形生成复杂图形;可由简单图形生成复杂图形;n n可用二维图形表示三维形体;可用二维图形表示三维形体;n n动态显示。动态显示。图形变换和齐次坐标图形变换和齐次坐标图形的几何变换图形的几何变换n n几何变换:图形的几何信息经过几何变换后产生新的图形。n n几何变换的两种形式:1. 1.图形不变,坐标系改变;图形不变,坐标系改变;2. 2.图形改变,坐标系不变。图形改变,坐标系不变。二维图形
2、变换二维图形变换n n1. 1. 平移变换平移变换n n从点从点Px,yPx,y平移到点平移到点Px,yPx,yn nx = x + mx = x + mn ny = y + ny = y + nP(x,y)P(xy)mnXYyxP(x,y)P(x,y)mnyxxy2 旋转变换(x,y)(x,y)一个点绕原点的旋转,逆时针方向为正。yyxxyxP(x,y)P(x,y)P(x,y)P(x,y)3 比例变换P(x,y)P(x,y)x = x*sxy= y*sySx = Sy: 均匀缩放。Sx = Sy 1,放大Sx = Sy 1, s1, 沿三个轴向等比例缩小沿三个轴向等比例缩小 当当0s1, 0
3、s1, 沿三个轴向等比例放大沿三个轴向等比例放大 (轴向比例变换与全比例变换的关系)(轴向比例变换与全比例变换的关系) n n对称变换对称变换 在二维变换下,对称变换是以线和点为基准,在二维变换下,对称变换是以线和点为基准,在三维变换下,对称变换则是以面、线、点为在三维变换下,对称变换则是以面、线、点为基准的。基准的。n n对称于对称于XOYXOY平面平面 x y z 1 = x y -z 1=x y z 1x y z 1 = x y -z 1=x y z 1n n对称于对称于YOZYOZ平面平面 x y z 1 = -x y z 1=x y z 1x y z 1 = -x y z 1=x y
4、 z 1n n对称于对称于XOZXOZ平面平面x y z 1 = x -y z 1=x y z 1x y z 1 = x -y z 1=x y z 1 那么,分别对称于那么,分别对称于X X、Y Y、Z Z轴和坐标原点的变轴和坐标原点的变换矩阵是什么?换矩阵是什么?n n平移变换平移变换 是指空间上的立体从一个位置移动到另一个位是指空间上的立体从一个位置移动到另一个位置时,其形状大小均不发生改变的变换。置时,其形状大小均不发生改变的变换。 x y z 1 = x y z 1 = x+dxx+dx y+dyy+dy z+dzz+dz 1 1 = =n n旋转变换旋转变换n n绕绕X X轴变换轴变
5、换 空间上的立体绕空间上的立体绕X X轴旋转时,立体上各点的轴旋转时,立体上各点的X X坐标不坐标不变,只是变,只是Y Y、Z Z坐标发生相应的变化。坐标发生相应的变化。 x= xx= x y= cos(+) = y* y= cos(+) = y*coscos- z*sin- z*sin z= sin(+) = y*sin+z* z= sin(+) = y*sin+z*coscos XYZ(x,y)(xy)YZOO(xy)(x,y)矩阵表示为:n n绕绕Y Y轴旋转轴旋转 此时,此时,Y Y坐标不变,坐标不变,X X,Z Z坐标相应变化坐标相应变化。 x= sin(+) = x*x= sin(
6、+) = x*coscos + z*sin + z*sin y= y y= y z= cos(+) = z* z= cos(+) = z*coscos- x*sin- x*sinXYZ(x,y)(xy)XZOO矩阵表示为n n绕绕Z Z轴旋转轴旋转 此时,此时,Z Z坐标不变,坐标不变,X X,Y Y坐标相应变化坐标相应变化。 x= cos(+) = x*x= cos(+) = x*coscos - y*sin - y*sin y= sin (+) = x*sin+ y* y= sin (+) = x*sin+ y*coscos z= z z= zXYZ(x,y)(xy)XYOO矩阵表示为:矩
7、阵表示为:n n组合变换:空间一点绕空间任一轴线的旋转变组合变换:空间一点绕空间任一轴线的旋转变换。要通过将几个基本的变换组合在一起,得换。要通过将几个基本的变换组合在一起,得到该组合变换。到该组合变换。 假定空间任一直线的方向矢量分别为:假定空间任一直线的方向矢量分别为:(l,m,n)(l,m,n) 并经过原点并经过原点(l,m,n)(x,y,z)(x,y,z)XYZON能否转换成绕X、Y或Z轴旋转的变换? ONON绕绕Z Z轴旋转轴旋转 2 2 到到XOZXOZ平面上,然后再绕平面上,然后再绕Y Y轴轴旋转旋转 1 1,即可与即可与Z Z轴重合。轴重合。ON21XYZ 这样,可得空间上任一
8、点绕这样,可得空间上任一点绕ONON轴旋转的变换轴旋转的变换过程如下:过程如下: 1 1)首先通过两次旋转,使)首先通过两次旋转,使ONON轴与轴与Z Z轴重合;轴重合; 2 2)然后使点绕)然后使点绕Z Z轴旋转轴旋转 角;角; 3 3)最后通过与)最后通过与1 1)相反的旋转,使)相反的旋转,使ONON轴回轴回 到原来的位置。到原来的位置。 假设,绕假设,绕Z Z轴的旋转轴的旋转- -2 2矩阵为矩阵为T T1 1 绕绕Y Y轴的旋转轴的旋转- -1 1矩阵为矩阵为T T2 2 绕绕Z Z轴的旋转轴的旋转 矩阵为矩阵为T T3 3 绕绕Y Y轴的旋转轴的旋转 1 1矩阵为矩阵为T T4 4
9、 绕绕Z Z轴的旋转轴的旋转 2 2矩阵为矩阵为T T5 5则总体变换矩阵为:则总体变换矩阵为: T = TT = T1 1 T T2 2 T T3 3 T T4 4 T T5 5 由上推导可看出,只要能求出由上推导可看出,只要能求出 1 1 、 2 2的值,即的值,即可通过上式获得绕可通过上式获得绕ONON轴的变换矩阵。轴的变换矩阵。 由于矢量由于矢量 (0 0 10 0 1)绕)绕Y Y轴旋转轴旋转 1 1 ,再绕再绕Z Z轴旋转轴旋转 2 2 即即可与可与ONON轴重合。即:轴重合。即: l m n 1 = sinl m n 1 = sin1 1 cos cos2 2 sin sin1
10、1sinsin2 2 cos cos1 1 1 1 l = sin l = sin1 1coscos2 2 m= sin m= sin1 1sinsin2 2 n = cos n = cos1 1从而通过上式即可得到从而通过上式即可得到 1 1、 2 2 的值。的值。问题:当任一轴线的端点不在原点时,此时应如问题:当任一轴线的端点不在原点时,此时应如何计算变换矩阵?何计算变换矩阵?绕任意轴的旋转变换绕任意轴的旋转变换n n基基基基本本本本思思思思想想想想:因因任任意意轴轴不不是是坐坐标标轴轴,应应设设法法旋旋转转该该轴轴,使使之之与与某某一一坐坐标标轴轴重重合合,然然后后进进行行旋旋转转 角角的的变换,最后按逆过程,恢复该轴的原始位置。变换,最后按逆过程,恢复该轴的原始位置。zxyBCALLP PQ QD D 作业1.已知平面一点P(xp,yp)与直线L的方程ax+by+c=0,现P相对L作对称变换,写出对应的变换矩阵。2.绕直线P1(0,1,0),P2(-1,0,1)旋转45度,求其复合变换的变换矩阵