Lesson 4 二维三维图形变换
1. 窗口与视图的变换
用户域(用户空间): 用户用来定义设计对象的实数域(连续的无限的)
窗口区W: 在用户坐标系中需要进行观察和处理的一个坐标区域,即用户在用户域中指定的任意区域W(window)。
窗口是用户图形的一部分,小于或等于用户域,可以嵌套定义窗口。
屏幕域: 图形设备上用来输出图形的最大区域。(有限的整数域)
视图区V: 将窗口映射到显示设备上的坐标区域。任何小于或等于屏幕域的区域都可定义为视图区V(viewport)。一个屏幕上可定义多个视图区。
窗口区到视图区的观察变换
为了全部如实地在视图区中显示出窗口区内所定义的物体图形,就必须求出图形在窗口区和视图区之间的映象关系。即需要根据用户所定义的参数(窗口区),找到窗口区与视图区之间的坐标对应关系。
a,c分别反映了窗口区和视图区之间在x和y方向上的伸缩比
b,d分别反映了定位点在x和y方向上的偏移量。
2.二维图形的几何变换
图形变换就是要变换图形的顶点坐标,同时保持图形的原拓扑关系不变。
(矩阵加法适合交换律和结合律;矩阵乘法适合结合律,不适合交换律)
性质:
从属性:变换前直线或图形上的点,变换后直线或图形上均有一确定的点与之对应。
同素性:变换前是直线、曲线或点,变换后仍有直线、曲线或点与之对应。
平行性:两直线平行,变换后仍保持平行。
平移变换
平移变换定义:
平移变换是指将p点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程,是一种不产生变形而移动物体的刚体变换。
设把图形从屏幕上一处p(x,y)移到另一处p’(x’,y’),平移的水平距离为Tx,垂直距离为Ty。可得 : x’= x+Tx 和 y’= y+Ty (Tx、Ty称为平移矢量)
[x’ y’] = [x y] + [Tx Ty]
设T = [Tx Ty],则p’ = p + T
比例变换
比例变换定义:
比例变换是指对p点相对于坐标原点沿x方向放缩Sx倍, 沿y方向放缩Sy倍。可得: x’= xSx 和 y’= ySy (Sx、Sy称为比例系数)
若把p(x,y)相对于参考点(x0,y0)缩放到另一处p’(x’,y’) ,sx、 sy为水平、垂直比例因子。可得: x’= x0+(x-x0)Sx 和 y’= y0+(y-y0)Sy
旋转变换
旋转变换定义: 二维旋转是指将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p’的重定位过程。
原坐标: x = r · cosα 和 y = r · sinα
相对原点变换后:x’ = xcosθ - ysinθ 和 y’ = xsinθ + ycosθ
相对参考点变换后:x’ = x0 + (x - x0) cosθ - (y - y0)sinθ 和 y’ = y0 + (y - y0) cosθ + (x - x0)sinθ
齐次坐标技术
使图形变换转化为表示图形的点集矩阵与某一变换矩阵进行矩阵乘法这一单一问题,从而借助计算机快速得到变换后的图形
**实现方法:**用n+1维向量表示一个n维向量,且在n+1维空间中描述n维向量的变换
例如:二维坐标点p(x,y)的齐次坐标为p(wx,wy,w)。w是一个非零比例系数。习惯上,用p=[x y 1]表示齐次坐标下二维平面上一个未变换的点。
齐次坐标表示法把二维线形变换表示如下所示的规格化形式:
x’ = a1x + b1y + c1 和 y’ = a2x + b2y + c2
n个定点的多边形,顶点矩阵变换为:
用齐次坐标技术表示几种变换:
平移 比例 旋转 :
镜像对称变换:
错切变换:
沿x轴方向关于y错切(x = x + cy)
沿y轴方向关于x错切(y = y + bx)
复合变换:
图形作一次以上的几何变换时,可以将复杂变换转化成一系列简单变换的连乘积,即变换矩阵相乘。
矩阵乘法没有交换率,复合变换要按一定顺序进行
连续变换:
连续进行的平移、比例、旋转变换可以交换顺序
连续进行的沿相同方向的错切可以交换顺序
eg:求XOY平面内,p(x,y)点绕任意点A(x0,y0)逆时针旋转θ角的复合变换矩阵。
① 将任意点A移至坐标原点,此时进行平移变换。
② 针对原点进行二维几何变换—逆时针旋转θ角。
③ 进行反平移,将任意点A又移回到原来的位置。
整体的比例变换(s,全比例变换):
它使整个图形沿x、y轴作等比例均匀变换
若s>1,图形整体缩小;
若0<s<1,图形整体放大;
若s<0,发生关于原点的对称变换。
无穷远点:
[1 0 0]:x轴上的无穷远点;
[0 1 0]:y轴上的无穷远点;
[0 0 1]:坐标原点。
3.三维图形的几何变换
通过三维图形变换,可用二维屏幕坐标表示三维形体。
三维图形变换则分为三维几何变换和投影变换
三维图形的几何变换
三维基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、比例、旋转、对称和错切等。假设三维物体变换前一点为p(x,y,z),变换后为p’(x’,y’,z’)。
三维空间中某点的变换可以表示成点的齐次坐标与四阶的三维变换矩阵相乘:
根据T3D在变换中所起的具体作用,进一步可将T3D分成四个矩阵。即:
平移变换
比例变换
比例变换分局部比例变换和整体比例变换。
① 局部比例变换
局部比例变换由T3D中主对角线元素决定,其它元素均为零。
当对x,y,z方向分别进行比例变换时,其变换矩阵为:
其中,a、e、i分别为x,y,z三个方向的比例因子。若a=e=i,则各方向缩放比例因子相同;若a≠e≠i,则各方向缩放比例因子不同,立体产生变形。
② 整体比例变换
若用同一比例进行变换,即得到整体比例变换,可用以下矩阵表示:
旋转变换
三维旋转变换可以看成是二维旋转变换的组合:分别以x, y,z为旋转轴,绕每个旋转轴的三维旋转可以看成是在另两个坐标轴组成的二维平面上进行的二维旋转变换,将二维旋转变换组合起来,就可得到总的三维变换。
① 绕z轴旋转
z坐标不变,x,y坐标变化,正好同二维的正向旋转一样
三维点p绕z轴正向旋转θ角的变换矩阵为:
② 绕y轴旋转
y坐标不变,z,x坐标变化,三维点p绕y轴正向旋转θ角的变换矩阵为:
③ 绕x轴旋转
x坐标不变,y,z坐标变化,三维点p绕x轴正向旋转θ角的变换矩阵为:
对称变换
对称变换有关于坐标平面、坐标轴、原点等对称变换。
① 关于坐标平面对称
另两种变换以此类推。
② 关于坐标轴对称
另两种变换以此类推。
③ 关于原点对称
错切变换
三维物体沿x、y、z轴三个方向发生错切变换,其变换矩阵为:
另两个以此类推。
逆变换
三维复合变换
三维复合变换是指图形作一次以上的变换,变换结果是每次的变换矩阵相乘:p’ = p · T = p · T1 · T2 ……Tn (n>1&#x