第七章图形变换图形变换一般是指将物体的几何信息经过放大、缩小、平移和旋转等几何变换后产生新的图形。它总是与相关的坐标系紧密相连的。从相对运动的观点来看,图形变换既可以看作是图形相对于坐标系的变动,即:坐标系固定不动,物体的图形在坐标系中的坐标值发生变化;也可以看作是图形不动,但是坐标系相对于图形发生了变动,从而使得物体在新的坐标系下具有新的坐标值。通常图形变换只改变物体的几何形状和大小,但是不改变其拓扑结构。第七章图形变换教学学时:4课时教学目的与要求:了解各种坐标系的定义及其作用;熟悉二维观察流程;掌握二维三维坐标变换的基本方法教学重点:坐标变换,平移变换,伸缩变换,旋转变换,组合变换;第七章图形变换主要研究内容:1.图形变换的数学基础2.窗口视图变换3.二维图形几何变换4.三维图形几何变换第七章图形变换图形变换是指对计算机生成的图形进行变换的技术,它是计算机图形学中较为基础的内容之一。通过图形变换可以从简单图形生成复杂图形;可以从某一个图形得到多个其它图形;可用二维图形表示三维形体;可对静态图形经过快速变换而获得图形的动态显示效果;当图形具有一定的规律性时,还可以使绘图程序简单化。第七章图形变换所以,为了提高图形程序的设计效率和质量,开拓图形程序应用范围的新领域,深入学习图形变换是十分必要的。图形变换应用的例子如图7.1所示。目前,较为完善的图形软件中,都包含有图形几何变换的一些功能。图形变换的作用和意义:1.把用户坐标系与设备坐标系联系起来;2.可由简单图形生成复杂图形;3.可用二维图形表示三维形体;4.动态显示。第七章图形变换图7.1图形变换应用示例7.1图形变换的数学基础zyxuuuUzyxvvvVzzyyxxvuvuvuVU矢量矢量和7.1图形变换的数学基础矢量的数乘矢量的点积性质zyxkukukuUkzzyyxxvuvuvuVUUVVUVUVU000UUU7.1图形变换的数学基础矢量的长度单位矢量矢量的夹角矢量的叉积222zyxuuuUUUVUVUcoszyxzyxvvvuuukjiVU7.1图形变换的数学基础矩阵m×n阶矩阵n阶方阵零矩阵行向量与列向量单位矩阵矩阵的加法矩阵的数乘矩阵的乘法矩阵的转置矩阵的逆7.1图形变换的数学基础矩阵的含义矩阵:由m×n个数按一定位置排列的一个整体,简称m×n矩阵。其中,aij称为矩阵A的第i行第j列元素mnmmnnaaaaaaaaa..................212222111211A=7.1图形变换的数学基础矩阵运算加法设A,B为两个具有相同行和列元素的矩阵...b............bm22111112121111mnmnmmmnnbaababaabaA+B=kA=[k*aij]|i=1...m,j=1,..n数乘7.1图形变换的数学基础乘法设A为3×2矩阵,B为2×3矩阵C=A·B=C=Cm×p=Am×n·Bn×pcij=∑aik*bkj单位矩阵在一矩阵中,其主对角线各元素aii=1,其余皆为0的矩阵称为单位矩阵。n阶单位矩阵通常记作In。Am×n=Am×n·Inbabababababababababababa322322221221312321221121321322121211311321121111k=1,n7.1图形变换的数学基础逆矩阵若矩阵A存在A·A-1=A-1·A=I,则称A-1为A的逆矩阵矩阵的转置把矩阵A=(aij)m×n的行和列互换而得到的n×m矩阵称为A的转置矩阵,记作AT。(AT)T=A(A+B)T=AT+BT(aA)T=aAT(A·B)T=BT·AT当A为n阶矩阵,且A=AT,则A是对称矩阵。7.1图形变换的数学基础矩阵运算的基本性质交换律与结合律师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+bAa(bA)=(ab)A7.1图形变换的数学基础矩阵乘法的结合律及分配律A(B·C)=(A·B)C(A+B)·C=A·C+B·CC·(A+B)=C·A+C·B矩阵的乘法不适合交换律7.2窗口视图变换图形变换一般是指将物体的几何信息经过放大、缩小、平移和旋转等几何变换后产生新的图形。它总是与相关的坐标系紧密相连的。从相对运动的观点来看,图形变换既可以看作是图形相对于坐标系的变动,即:坐标系固定不动,物体的图形在坐标系中的坐标值发生变化;也可以看作是图形不动,但是坐标系相对于图形发生了变动,从而使得物体在新的坐标系下具有新的坐标值。通常图形变换只改变物体的几何形状和大小,但是不改变其拓扑结构。7.2窗口视图变换窗口和视图区用户坐标系(worldcoordinatesystem,简称WC)设备坐标系(devicecoordinatesystem,简称DC)窗口区(window)视图区(viewport)7.2窗口视图变换a世界坐标系:通常世界坐标系是一个三维笛卡儿坐标系。它是一个全局坐标系统,一般为右手坐标系。该坐标系主要用于图形场景中的所有图形对象的空间定位、观察者(视点)的位置和视线的定义等等。计算机图形系统中所涉及的其它坐标系基本上都是参照它进行定义的。b局部坐标系:为了几何造型和观察物体方便起见,独立于世界坐标系定义的二维或三维笛卡儿坐标系称为局部坐标系。在局部坐标系中定义的局部物体,通过指定局部坐标系在世界坐标系中的方位,利用几何变换,就可以将局部定义的物体变换到世界坐标系内,使之升级成为世界坐标系中的物体。7.2窗口视图变换c观察坐标系:观察坐标系通常是以视点的位置为原点,通过用户指定的一个向上的观察向量来定义的一个坐标系,缺省为左手坐标系。观察坐标系主要用于从观察者的角度对整个世界坐标系内的图形对象进行观察,以便简化几何物体在视平面(又成为成像面或投影面)的成像的数学演算。d视平面(成像面)坐标系:它是一个二维直角坐标系统,主要用于计算物体在成像面上的投影。一般是通过指定视方向和视点到成像面之间的距离来定义成像面(投影面)。可进一步在投影面上定义一个称之为窗口的矩形区域来实现部分成像。7.2窗口视图变换e屏幕坐标系:屏幕坐标系也称为设备坐标系,它主要用于某一特定的计算机图形显示设备(如光栅显示器)的表面的点的定义。在多数情况下,对于每一个具体的显示设备,都有一个单独的设备坐标系。在定义了成像窗口的情况下,可进一步在屏幕坐标系统中定义称为视区的有界区域,视区中的成像即为实际所观察到的图形对象。换句话说,在世界坐标系中要显示的区域称为窗口,而显示器上相应的图形输出区域称为视区(或视口)。将世界坐标系中的一部分区域中的场景映射到设备坐标系的过程称为观察变换;将二维观察变换简单地称为窗口到视区的变换,简称为窗视变换。7.2窗口视图变换1.世界坐标系(WCS-WorldCoordinateSystem)世界坐标系一般是三维右手直角坐标系,它的单位根据所描述的实际对象的大小来确定,通常使用实数,取值范围并无限制。它是一般用户绘图时所取的坐标系,有时也称为用户坐标系或物体坐标系。通常表示为图7.2(a),它也可以是二维的,表示为图7.2(b)。7.2窗口视图变换yxOz+y+xyOx(a)(b)O+B+A+z+C图7.2世界坐标系(WCS)(a)3D右手直角坐标系;(b)2D右手直角坐标系7.2窗口视图变换2.目坐标系(ECS/VCS-EyeCoordinateSystem)目坐标系一般是三维左手直角坐标系,通过变换可在用户坐标系的任何位置,任何方向定义。它的单位根据所描述的实际对象的大小来确定,一般使用实数。它是一般用户观察图形对象时所取的坐标系,有时也称为观察坐标系(VCS-ViewCoordinateSystem)。7.2窗口视图变换建立目坐标系的主要作用有两个,第一个是用于指定裁剪空间,确定三维立体的哪部分要显示输出;第二个是通过定义观察(投影)平面,把可显示部分的用户坐标变换成规格化的设备坐标。用户坐标与目坐标之间的关系,如图7.3所示。7.2窗口视图变换图7.3目坐标系(ECS)zxOzPyxhyzeOsP*xsysOexeye7.2窗口视图变换3.设备坐标系(DCS-DeviceCoordinateSystem)为了便于输出真实图形,设备坐标系(DCS)有时也采用左手三维直角坐标系,但它不全都是左手的、三维的。它的单位根据输出设备的实际大小来确定,一般使用整数,如图7.4所示。7.2窗口视图变换图7.4设备坐标系(DCS)+y+x+zyzxO7.2窗口视图变换4.规格化设备坐标系(NDCS-NormalizedDeviceCoordinateSystem)在早期的图形系统中,图形程序(或软件包)大多是在用户坐标系(WCS)中画图,然后直接映射到设备坐标空间(DCS)显示输出。7.2窗口视图变换这就给设备的更换和软件的移植带来不方便。为此,在WCS和DCS之间定义了一个与设备无关的规格化设备坐标系,考虑到且坐标系与设备坐标系,它常被取为三维或二维左手直角坐标系,取值范围约定为(0.0,0.0,0.0)到(1.0,1.0,1.0)或者(0.0,0.0)到(1.0,1.0),如图5.7所示。用户的绘图数据经过转换成NDCS中的值,使得图形有了统一的设备空间。这对图形的统一处理,带来很大的方便,从而提高图形程序的可移植性。7.2窗口视图变换图7.5规格化设备坐标系(NDCS)yzx111O+y+x+z7.2窗口视图变换以上介绍的坐标系均为三维坐标系,但在显示器屏幕上或绘图机上,则要求用户定义一个平面。较为简单方便的办法是使z坐标值取零。因此在三维直角坐标系中,xOy平面也可以看作是基本工作平面。任何不在xOy平面内的图形可以通过本章介绍的图形变换来处理。国际图形标准GKS(GraphicsKernelSystem)是图形程序和各种图形输入/输出设备之间的一个标准软件接口。为便于图形程序的使用和对设备的处理,GKS设置了三种坐标系,即世界坐标系(WCS)、规范化设备坐标系(NDCS)和设备坐标系(DCS)。它们之间的转换如图7.6所示。7.2窗口视图变换图7.6WCS、ECS、NDCS和DCS间的转换yxODCSxOyDCSyxODCSy11xO0UOVNDCSECS观察平面yxWCSO7.2窗口视图变换窗口区和视图区的坐标变换设窗口的四条边界WXL,WXR,WYB,WYT视图的四条边界VXL,VXR,VYB,VYT则用户坐标系下的点(即窗口内的一点)(Xw,Yw)对应屏幕视图区中的点(Xs,Ys),其变换公式为VYBWYBYWYBWYTVYBVYTYVXLWXLXWXLWXRVXLVXRXwsws7.2窗口视图变换简化为:1)当ac时,即x方向的变化与y方向的变化不同时,视图中的图形会有伸缩变化,图形变形。2)当a=c=1,b=d=0则Xs=Xw,Ys=Yw,图形完全相同。思考:前面讲的窗口→视图变换时,假设窗口的边和坐标轴平行,如果窗口的边不和坐标轴平行呢?式)1(dYcYbXaXwsws7.2窗口视图变换A.先让窗口FGHI转-α角,使它和FG'H'I'重合。B.用(1)式进行计算。7.2窗口视图变换二维图形的显示流程图7.3二维图形几何变换图形变换:对图形的几何信息经过几何变换后产生新的图形。图形变换的两种形式:1.图形不变,坐标系改变;2.图形改变,坐标系不变。我们所讨论的是针对坐标系的改变而讲的。7.3二维图形几何变换7.3.1二维图形几何变换的原理二维图形由点或直线段组成直线