《计算机图形学复习.pdf》由会员分享,可在线阅读,更多相关《计算机图形学复习.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、0.0.绪论绪论提出问题提出问题1 1 什么是计算机图形学?计算机图形学计算机图形学是研究怎样利用计算机来生成、处理和显示图形的原理、方法和技术的一门学科。2 2 计算机图形学研究的对象是什么?计算机图形学的研究对象计算机图形学的研究对象图形图形通常意义下的图形:通常意义下的图形:能够在人的视觉系统中形成视觉印象的客观对象都称为图形。计算机图形学中所研究的图形计算机图形学中所研究的图形从客观世界物体中抽象出来的带有颜色及形状信息的图和形。3 3 计算机图形处理系统的构造?图形软件图形系统图形应用数据结构图形应用软件图形支撑软件图形硬件图形计算机平台图形设备图1-3 计算机图形系统的结构4 4
2、计算机图形学的应用边缘性学科计算机图形学与传统理论边缘性学科计算机图形学与传统理论:交叉、界线模糊、相互渗透交叉、界线模糊、相互渗透CAGD(计算几何)逼近论(计算数学)微分几何形态学图形的表示图形的表示点阵法点阵法是用具有颜色信息的点阵来表示图形的一种方法,它强调图形由哪些点组成,并具有什么灰度或色彩。参数法参数法是以计算机中所记录图形的形状参数与属性参数来表示图形的一种方法。通常把参数法描述的图形叫做图形(图形(GraphicsGraphics)把点阵法描述的图形叫做图象(图象(ImageImage)与计算机图形学相关的学科与计算机图形学相关的学科计算机图形学计算机图形学试图从非图象形式的
3、数据描述来生成(逼真的)图象。数字图象处理数字图象处理旨在对图象进行各种加工以改善图象的视觉效果。计算机视觉计算机视觉是研究用计算机来模拟生物外显或宏观视觉功能的科学和技术。图象信号计算机图形学特征数据、结构数据计算机视觉数字图象处理图1-1 图形图象处理相关学科间的关系0.4.10.4.1计算机图形系统的功能计算机图形系统的功能第第3 3章章 基于光栅扫描的二维图元生成算法基于光栅扫描的二维图元生成算法提出问题提出问题如何在指定的输出设备上根据坐标描述构造基本二如何在指定的输出设备上根据坐标描述构造基本二维几何图形(点、直线、圆、椭圆、多边形域、字符串及其相关属性维几何图形(点、直线、圆、椭
4、圆、多边形域、字符串及其相关属性等)等)。图形的生成:是在指定的输出设备上,根据坐标描述构造二维图形的生成:是在指定的输出设备上,根据坐标描述构造二维几何图形。几何图形。图形的扫描转换图形的扫描转换:在光栅显示器等数字设备上确定一个最佳逼近于图在光栅显示器等数字设备上确定一个最佳逼近于图形的象素集的过程。形的象素集的过程。显示器交互图形输出设备输出计算输入图形输入设备图1-2 图形系统基本功能框图存贮数据库直线的绘制要求:直线的绘制要求:1.1.直线要直直线要直 2.2.直线的端点要准确直线的端点要准确 3.3.直线的亮度、色泽要均匀直线的亮度、色泽要均匀 4.4.画线的速度要快画线的速度要快
5、 5.5.要求直线具有不同的色泽、亮度、线型等要求直线具有不同的色泽、亮度、线型等特点:特点:增量算法增量算法,直观、易实现、误差小直观、易实现、误差小,不利于用硬件实现不利于用硬件实现二、直线的二、直线的 BresenhamBresenham 算法(中点算法(中点 BresenhamBresenham 算法算法基本思想:每步一个坐标改变基本思想:每步一个坐标改变1 1,而另一个坐标要看当前点与直线,而另一个坐标要看当前点与直线上点的误差上点的误差 e,e,根据根据 e e 的符号决定是否改变的符号决定是否改变显然有结论:显然有结论:当当 di0di0 时,因时,因 T T 小,因此选择点小,
6、因此选择点 TiTi 以逼近理想直线,所以有以逼近理想直线,所以有:当当 di0di0 时,因时,因 S S 小,因此选择点小,因此选择点 SiSi 以逼近理想直线,所以有以逼近理想直线,所以有:当当 di=0di=0 时,时,因因 S=S=T T,规定此时选择点规定此时选择点 TiTi 逼近理想直线,逼近理想直线,所以有所以有:3.33.3 区域填充区域填充实面积图形实面积图形:封闭图形(或有界表面)封闭图形(或有界表面),在其封闭的面积上(轮廓内),在其封闭的面积上(轮廓内)具有相同的亮度或色彩,具有相同的亮度或色彩,这意味着要让计算机填充光栅扫描图形显示这意味着要让计算机填充光栅扫描图形
7、显示器(点阵图形显示器)中封闭面积上的每一个显示点(像素点)器(点阵图形显示器)中封闭面积上的每一个显示点(像素点)。根据表示实面积图形的方法不同,实面积图形的生成可分为两大类:根据表示实面积图形的方法不同,实面积图形的生成可分为两大类:(1)(1)多边的填充:即实面积图形的轮廓用其封闭多边形的顶点坐标数多边的填充:即实面积图形的轮廓用其封闭多边形的顶点坐标数据来描述定义(简称实面积图形的图形表示法)据来描述定义(简称实面积图形的图形表示法),在其封闭的多边形,在其封闭的多边形内部填充用户指定的颜色;内部填充用户指定的颜色;(2 2)种子填充:即用点阵方式描述定义实面积图形,这个图形的实)种子
8、填充:即用点阵方式描述定义实面积图形,这个图形的实面积由用户指定的点阵颜色包围或组成面积由用户指定的点阵颜色包围或组成(简称实面积图形的图像表示(简称实面积图形的图像表示法)法),在图形的实面积上填充用户指定的颜色,其中这个指定的第一,在图形的实面积上填充用户指定的颜色,其中这个指定的第一个填充点又称为种子。个填充点又称为种子。由于种子填充算法原则上属图像处理方法,由于种子填充算法原则上属图像处理方法,故故不在此讨论。不在此讨论。1.1.多边形:是一个由折线段组成的封闭图形,它由有序顶点的多边形:是一个由折线段组成的封闭图形,它由有序顶点的点集点集及有向边的线集及有向边的线集定义。定义。n n
9、 为多边形的顶点数或边数,为多边形的顶点数或边数,且且Ei=ViVi+1,i=1Ei=ViVi+1,i=1,2 2,n n。这里。这里 Vn+1=V1Vn+1=V1,用以保证多边形的封闭,用以保证多边形的封闭性。性。应注意,应注意,当用多边形来表示有界平面或实面积图形的边界时,当用多边形来表示有界平面或实面积图形的边界时,规规定多边形每条有向边的左侧为实面积图形的实面积区域(或内部区定多边形每条有向边的左侧为实面积图形的实面积区域(或内部区域)域),因此它不允许多边形的边线自相交叉(见图,因此它不允许多边形的边线自相交叉(见图 3.3-13.3-1)。2.2.环环:因为多边形的有向边线左侧为其
10、实面积区域,故沿实面因为多边形的有向边线左侧为其实面积区域,故沿实面积图形外轮廓线多边形的顶点方向顺序环行时,积图形外轮廓线多边形的顶点方向顺序环行时,要求该多边形顶点的要求该多边形顶点的整个环行方向逆时针旋转;整个环行方向逆时针旋转;而沿其内轮廓线多边形的顶点方向顺序环而沿其内轮廓线多边形的顶点方向顺序环行时,行时,要求该多边形顶点的整个环行方向顺时针旋转。要求该多边形顶点的整个环行方向顺时针旋转。这种定义了环这种定义了环行方向的多边形称为环。前者为外环,后者为内环(见图行方向的多边形称为环。前者为外环,后者为内环(见图 3.3-23.3-2)。3.3.带孔多边形带孔多边形由一个外环和数个内
11、环组成的多边形称为带孔多边形,由一个外环和数个内环组成的多边形称为带孔多边形,若多若多边形没有内环即为不带孔多边形。边形没有内环即为不带孔多边形。4.4.凹、凸多边形的判别方法凹、凸多边形的判别方法当多边形的顶点数据按环的要求存放后,当多边形的顶点数据按环的要求存放后,判断外环上凹、判断外环上凹、凸点的方凸点的方法是:法是:定义定义Vi1ViViVi1 ak其中,其中,a a 的表达式见公式(的表达式见公式(3.3-23.3-2),向量,向量 k k 与与 Vi-1ViVi-1Vi,ViVi Vi+1Vi+1 符合符合右手螺旋法则。右手螺旋法则。若数值若数值 a0a0,则,则 ViVi 点为凹
12、点,否则为凸点。点为凹点,否则为凸点。具有凹点的多边形为凹多边形,只具有凸点的多边形为凸多边具有凹点的多边形为凹多边形,只具有凸点的多边形为凸多边形。形。外环的凹点对应的内角一定大于外环的凹点对应的内角一定大于180180,凸点的内角小于,凸点的内角小于180180,人们一般利用这一性质直观地判别凹凸多边形,并有,人们一般利用这一性质直观地判别凹凸多边形,并有如下结论:任何一个多边形,其外形上凸点的个数总是多于其如下结论:任何一个多边形,其外形上凸点的个数总是多于其凹点的个数。这一结论用于三维空间的有界平面中,就能确定凹点的个数。这一结论用于三维空间的有界平面中,就能确定每个有界平面的朝向(见
13、后述)每个有界平面的朝向(见后述)。二、多边形的填充原理二、多边形的填充原理找出所有位于封闭图形内的像素点,把这些点置换成所要求找出所有位于封闭图形内的像素点,把这些点置换成所要求的像素值。的像素值。如果在显示屏中,采用从上到下、从左到右找出每一个显示如果在显示屏中,采用从上到下、从左到右找出每一个显示点点,然后通过多边形的边界函数(凸多边形有边界函数且表达方式简然后通过多边形的边界函数(凸多边形有边界函数且表达方式简单)等方法单)等方法,判断其是否位于封闭图形之内后再填充。判断其是否位于封闭图形之内后再填充。(3.31)这种方法原理虽然简单,这种方法原理虽然简单,但速度太慢,但速度太慢,特别
14、不适合凹多边形与带特别不适合凹多边形与带孔多边形的填充需要。因此有必要寻找一种通用的(适用与凹、凸、孔多边形的填充需要。因此有必要寻找一种通用的(适用与凹、凸、带孔的多边形)带孔的多边形)快速判断像素点位于封闭图形之内的计算方法,快速判断像素点位于封闭图形之内的计算方法,这是这是多边形图形填充的关键。多边形图形填充的关键。射线的交点计数法:判断像素点位于封闭图形内外的方法如下:射线的交点计数法:判断像素点位于封闭图形内外的方法如下:从封闭图形外找一点,引一水平射线(称为扫描线)与封从封闭图形外找一点,引一水平射线(称为扫描线)与封闭图形相交。闭图形相交。当交点计数为奇数时,当交点计数为奇数时,
15、扫描线在封闭图形内扫描线在封闭图形内(射线穿入(射线穿入封闭图形)封闭图形);当交点计数为偶数时,扫描线在封闭图形外,该方法简;当交点计数为偶数时,扫描线在封闭图形外,该方法简称交点计数法则。如图称交点计数法则。如图 3.3-33.3-3 所示所示因此在正确计算扫描线与封闭多边形的所有交点因此在正确计算扫描线与封闭多边形的所有交点 之后,图形的填充之后,图形的填充就成了画直线的过程。就成了画直线的过程。这种逐个计算要显示的各点并显示的过程又称这种逐个计算要显示的各点并显示的过程又称扫描转换扫描转换三、多边形的(三、多边形的(YXYX)填充算法)填充算法(YXYX)填充算法根据多边形填充算法的原
16、理,先求出多边形各斜边)填充算法根据多边形填充算法的原理,先求出多边形各斜边与扫描线的所有交点并记录;与扫描线的所有交点并记录;然后按从上到下、然后按从上到下、从左到右的次序对所从左到右的次序对所有的交点进行排序;有的交点进行排序;最后利用这些交点总是成对出现并从上到下、最后利用这些交点总是成对出现并从上到下、从从左到右排列的规律画直线,左到右排列的规律画直线,画完所有的直线即完成填充任务。画完所有的直线即完成填充任务。对于图对于图3.3-53.3-5(a a)所示的多边形,其扫描线与多边形各斜边的交点的排序结)所示的多边形,其扫描线与多边形各斜边的交点的排序结果如图果如图 3.3-53.3-
17、5(b b)所示。根据这一结果,读者不难完成该多边形的填)所示。根据这一结果,读者不难完成该多边形的填充。充。四、多边形的四、多边形的 Y-XY-X填充算法填充算法(YXYX)填充算法虽然简单,)填充算法虽然简单,但当多边形的形状复杂时,其交点表的容量非常大;但当多边形的形状复杂时,其交点表的容量非常大;而且对交点进行排序很费时,这极大地影响了该算法的使用效而且对交点进行排序很费时,这极大地影响了该算法的使用效果;果;为了克服这两个缺点,可对该算法进行如下改进:为了克服这两个缺点,可对该算法进行如下改进:改进存储方式。不存储多边形上每个交点的坐标,而是存储其改进存储方式。不存储多边形上每个交点
18、的坐标,而是存储其每条斜边。每条斜边。如果一条斜边用其如果一条斜边用其 2 2 个顶点坐标变量个顶点坐标变量(x1x1,y1y1),(x2x2,y2y2)来代替的话,这将比存储斜边上的每个交点坐标所需要的)来代替的话,这将比存储斜边上的每个交点坐标所需要的存储容量要少得多;存储容量要少得多;改进交点的计算方法,并要求斜边上的每一交点与填充扫描线改进交点的计算方法,并要求斜边上的每一交点与填充扫描线同步出现,以便画线填充多边形;同步出现,以便画线填充多边形;因多边形的斜边总量远比其交点总量小,故对斜边的排序相对因多边形的斜边总量远比其交点总量小,故对斜边的排序相对较快。较快。3.6.23.6.2
19、图形的裁剪图形的裁剪在二维观察中,在二维观察中,需要在观察坐标系下对窗口进行裁剪,需要在观察坐标系下对窗口进行裁剪,即只保留即只保留窗口内的那部分图形,去掉窗口外的图形。窗口内的那部分图形,去掉窗口外的图形。一、点与字符的裁剪一、点与字符的裁剪当图形系统的窗口确定之后,当图形系统的窗口确定之后,设被裁剪的点坐标为设被裁剪的点坐标为(x,yx,y),xwmin x xwmaxywmin y ywmax则只有当该点的坐标满足下式则只有当该点的坐标满足下式该点才位于窗口之内,该点才位于窗口之内,并经窗视变换送视区中显示,并经窗视变换送视区中显示,否则该点位于窗否则该点位于窗口之外而被舍去。口之外而被
20、舍去。二、二、直线段的裁剪直线段的裁剪假定直线段用假定直线段用 p1(x1,y1)p2(x2,y2)p1(x1,y1)p2(x2,y2)表示。表示。直线段和剪裁窗口的可能关系:直线段和剪裁窗口的可能关系:完全落在窗口内完全落在窗口内 完全落在窗口外完全落在窗口外 与窗口边界相交与窗口边界相交 实交点是直线段与窗口矩形边界的交点。实交点是直线段与窗口矩形边界的交点。虚交点则是直线段与窗口矩形边界延长线或直线段的延长线虚交点则是直线段与窗口矩形边界延长线或直线段的延长线与窗口矩形边界的交点。与窗口矩形边界的交点。1.1.直线的编码裁剪算法直线的编码裁剪算法基本思想:对每条直线段基本思想:对每条直线
21、段 p1(x1,y1)p2(x2,y2)p1(x1,y1)p2(x2,y2)分三种情况处理:分三种情况处理:(1)(1)直线段完全可见,直线段完全可见,“简取简取”之。之。(2)(2)直线段完全不可见,直线段完全不可见,“简弃简弃”之。之。(3)(3)直线段既不满足直线段既不满足“简取简取”的条件,也不满足的条件,也不满足“简弃简弃”的条件,需要对的条件,需要对直线段按交点进行分段,分段后重复上述处理。直线段按交点进行分段,分段后重复上述处理。算法的步骤:算法的步骤:(1)(1)输入直线段的两端点坐标:输入直线段的两端点坐标:p1(x1,y1)p1(x1,y1)、p2(x2,y2)p2(x2,
22、y2),以及窗口的四,以及窗口的四条边界坐标:条边界坐标:wytwyt、wybwyb、wxlwxl 和和 wxrwxr。(2)(2)对对 p1p1、p2p2 进行编码:进行编码:点点 p1p1 的编码为的编码为 code1code1,点点 p2p2 的编码为的编码为 code2code2。(3)(3)若若 code1|code2=0000code1|code2=0000,对直线段应简取之,转,对直线段应简取之,转(6)(6);否则,若;否则,若code1&code2code1&code200000000,对直线段可简弃之,转,对直线段可简弃之,转(7)(7);当上述两条均不满;当上述两条均不满
23、足时,进行步骤足时,进行步骤(4)(4)。(4)(4)确保确保 p1p1 在窗口外部:若在窗口外部:若 p1p1 在窗口内,则交换在窗口内,则交换 p1p1 和和 p2p2 的坐标值的坐标值和编码。和编码。(5)(5)按左、右、上、下的顺序求出直线段与窗口边界的交点,并用该按左、右、上、下的顺序求出直线段与窗口边界的交点,并用该交点的坐标值替换交点的坐标值替换 p1p1 的坐标值。也即在交点的坐标值。也即在交点 s s 处把线段一分为二,处把线段一分为二,并去掉并去掉 p1sp1s 这一段。考虑到这一段。考虑到p1p1 是窗口外的一点,因此可以去掉是窗口外的一点,因此可以去掉 p1sp1s。转
24、转(2)(2)。(6)(6)用直线扫描转换算法画出当前的直线段用直线扫描转换算法画出当前的直线段 p1p2p1p2。(7)(7)算法结束。算法结束。特点:特点:在两类裁剪场合非常高效:大窗口和特别小的窗口在两类裁剪场合非常高效:大窗口和特别小的窗口2.2.中点分割算法中点分割算法基本思想:基本思想:当对直线段不能简取也不能简弃时,简单地把线段等分当对直线段不能简取也不能简弃时,简单地把线段等分为二段,为二段,对两段重复上述测试处理,对两段重复上述测试处理,直至每条线段完全在窗口内或完直至每条线段完全在窗口内或完全在窗口外。全在窗口外。算法步骤:算法步骤:(1)(1)输入直线段的两端点坐标:输入
25、直线段的两端点坐标:p1(x1,y1)p1(x1,y1)、p2(x2,y2)p2(x2,y2),以及窗口的四,以及窗口的四条边界坐标:条边界坐标:wytwyt、wybwyb、wxlwxl 和和 wxrwxr。(2)(2)对对 p1p1、p2p2 进行编码:进行编码:点点 p1p1 的编码为的编码为 code1code1,点点 p2p2 的编码为的编码为 code2code2。(3)(3)若若 code1|code2=0000code1|code2=0000,对直线段应简取之,保留当前直线段的端,对直线段应简取之,保留当前直线段的端点坐标,转点坐标,转(5)(5);否则,若;否则,若 code1
26、&code2code1&code200000000,对直线段可简弃之,对直线段可简弃之,转转(5)(5);当上述两条均不满足时,进行步骤;当上述两条均不满足时,进行步骤(4)(4)。(4)(4)求出直线段的中点求出直线段的中点 MM,将,将 p1Mp1M、p2Mp2M 入栈。入栈。(5)(5)当栈不空时,当栈不空时,从栈中弹出一条直线段,从栈中弹出一条直线段,取为取为 p1p2p1p2,转转(2)(2)进行处理。进行处理。否则,继续否则,继续(6)(6)。(6)(6)当栈为空时,当栈为空时,合并保留的直线段端点,合并保留的直线段端点,得到窗口内的直线段得到窗口内的直线段 p1p2p1p2。用直
27、线扫描转换算法画出当前的直线段用直线扫描转换算法画出当前的直线段 p1p2p1p2,算法结束。,算法结束。中点分割算法的核心思想是通过二分逼近来确定直线段与窗口的中点分割算法的核心思想是通过二分逼近来确定直线段与窗口的交点。交点。1.1.多边形的逐边裁剪算法多边形的逐边裁剪算法算法实施策略:算法实施策略:为窗口各边界裁剪的多边形存储输入与输出顶点表。在窗口的为窗口各边界裁剪的多边形存储输入与输出顶点表。在窗口的一条裁剪边界处理完所有顶点后,其输出顶点表将用窗口的下一条裁剪边界处理完所有顶点后,其输出顶点表将用窗口的下一条边界继续裁剪。一条边界继续裁剪。窗口的一条边以及延长线构成的裁剪线把平面分
28、为两个区域,窗口的一条边以及延长线构成的裁剪线把平面分为两个区域,包含有窗口区域的一个域称为可见侧;不包含窗口区域的域为包含有窗口区域的一个域称为可见侧;不包含窗口区域的域为不可见侧。不可见侧。特点:特点:适用于凸多边形和裁剪后仍连通的凹多边形,适用于凸多边形和裁剪后仍连通的凹多边形,适于用硬件实现适于用硬件实现当多边形的所有顶点都按这种情况处理完毕之后,当多边形的所有顶点都按这种情况处理完毕之后,所保存的所保存的顶点与交点就是所组成的数个新多边形的顶点。为使新多边形封闭,顶点与交点就是所组成的数个新多边形的顶点。为使新多边形封闭,注意还要裁剪注意还要裁剪 VnV1VnV1 所组成的边(所组成
29、的边(V1,VnV1,Vn 分别是多边形的第一个顶分别是多边形的第一个顶点与最后一个顶点)点与最后一个顶点)。在实现该算法时,如果保留每次裁剪之后的中间结果,这一在实现该算法时,如果保留每次裁剪之后的中间结果,这一中间结果会占用很大的存储空间,但如果能用递归的方式实现该算中间结果会占用很大的存储空间,但如果能用递归的方式实现该算法,则不用保留每次裁剪的中间结果。法,则不用保留每次裁剪的中间结果。递归算法递归算法:首先按多边形的顶点次序依次裁剪多边形的每条边;首先按多边形的顶点次序依次裁剪多边形的每条边;而对多边形的每条边先用窗口的第一条边框去裁剪;而对多边形的每条边先用窗口的第一条边框去裁剪;
30、当这条边通过窗口的第一条边框裁剪之后;当这条边通过窗口的第一条边框裁剪之后;再用窗口的第二条边框去裁剪;再用窗口的第二条边框去裁剪;如果它通过第二条边框裁剪之后;如果它通过第二条边框裁剪之后;再用窗口的第三、四条边框去裁剪;再用窗口的第三、四条边框去裁剪;最后通过第四条边框裁剪输出的顶点与交点,就是被窗口裁剪最后通过第四条边框裁剪输出的顶点与交点,就是被窗口裁剪之后新多边形的顶点。之后新多边形的顶点。不能通过上述四步裁剪的边线,其顶点与交点自然被舍弃,因不能通过上述四步裁剪的边线,其顶点与交点自然被舍弃,因而对应的边线也被裁掉。而对应的边线也被裁掉。图形几何变换的目的:是用已有的简单图形构造复
31、杂图形图形几何变换的目的:是用已有的简单图形构造复杂图形5.15.1图形的几何变换图形的几何变换1 1齐次坐标齐次坐标 齐次坐标表示就是用齐次坐标表示就是用 n+1n+1 维向量表示一个维向量表示一个 n n 维向量。维向量。二维平面中的一个点二维平面中的一个点 P(x,y)P(x,y),在齐次坐标系中可表示成在齐次坐标系中可表示成 P P(w w x,wx,w y,wy,w)其中)其中 w w 是一个不为是一个不为 0 0 的常量;反过来,只的常量;反过来,只要能给定一个点的齐次坐标要能给定一个点的齐次坐标,我们就能得到这个点的,我们就能得到这个点的二维直角坐标系二维直角坐标系。齐次坐标的不
32、唯一性齐次坐标的不唯一性规范化齐次坐标表示就是规范化齐次坐标表示就是 w=1w=1 的齐次坐标表示。的齐次坐标表示。如何从齐次坐标转换到规范化齐次坐标?如何从齐次坐标转换到规范化齐次坐标?2 2几何变换几何变换图形的几何变换是指对图形的几何信息经过平移、图形的几何变换是指对图形的几何信息经过平移、比例、比例、旋转等变换旋转等变换后产生新的图形,是图形在方向、尺寸和形状方面的变换。后产生新的图形,是图形在方向、尺寸和形状方面的变换。基本几何变换都是相对于坐标原点和坐标轴进行的几何变换基本几何变换都是相对于坐标原点和坐标轴进行的几何变换1 1平移变换平移变换平移是指将平移是指将 p p 点沿直线路
33、径从一个坐标位置移到另一个坐标位置的点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。重定位过程。平移是一种不产生变形而移动物体的刚体变换平移是一种不产生变形而移动物体的刚体变换2 2比例变换比例变换比例变换是指对比例变换是指对 p p 点相对于坐标原点沿点相对于坐标原点沿 x x 方向放缩方向放缩 SxSx 倍,沿倍,沿 y y 方方向放缩向放缩 SySy 倍。其中倍。其中 SxSx 和和 SySy 称为比例系数。称为比例系数。3 3旋转变换旋转变换二维旋转是指将二维旋转是指将 p p 点绕坐标原点转动某个角度(逆时针为正,顺时点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新
34、的点针为负)得到新的点 p p 的重定位过程。的重定位过程。4 4对称变换对称变换对称变换后的图形是原图形关于某一轴线或原点的镜像。对称变换后的图形是原图形关于某一轴线或原点的镜像。5 5错切变换错切变换错切变换(主要用于三维图形变换)错切变换(主要用于三维图形变换),也称为剪切、错位变换,用于,也称为剪切、错位变换,用于产生弹性物体的变形处理。产生弹性物体的变形处理。(1)(1)沿沿 x x 方向错切方向错切(2)(2)沿沿 y y 方向错切方向错切(3)(3)两个方向错切两个方向错切二维图形几何变换的计算二维图形几何变换的计算用点的齐次坐标及变换矩阵的组合方式,用点的齐次坐标及变换矩阵的组
35、合方式,可表示一个图形连续的几何可表示一个图形连续的几何变换,以产生所需要的结果。变换,以产生所需要的结果。几何变换均可表示成几何变换均可表示成 P=P*TP=P*T 的形式的形式1.1.点的变换点的变换 2.2.直线的变直线的变 换换3.3.多边形的变换多边形的变换4.4.曲线的变换曲线的变换注意注意:图形旋转一定是相对于某个参考点进行的。图形旋转一定是相对于某个参考点进行的。同样图形进行比例变换,也是相对某个参考点进行的。在应用同样图形进行比例变换,也是相对某个参考点进行的。在应用中如果不注意这点就会导致错误的结果。中如果不注意这点就会导致错误的结果。3.3.坐标系的变换坐标系的变换前面都
36、是讨论在同一坐标系中把一组点变换成另一组点。前面都是讨论在同一坐标系中把一组点变换成另一组点。实际实际上,把一组点变换成另一组点的另一种可选择的方法是改变坐标系。上,把一组点变换成另一组点的另一种可选择的方法是改变坐标系。下面用两个例子来说明这种变换。下面用两个例子来说明这种变换。这一结论也适用于平移、这一结论也适用于平移、比例、比例、反射、反射、错切等基本几何变换,错切等基本几何变换,即图形在坐标系中的变换等效于图形不变而让坐标系进行反向变换,即图形在坐标系中的变换等效于图形不变而让坐标系进行反向变换,这两者的变换效果与变换矩阵是一样的。这两者的变换效果与变换矩阵是一样的。从而可归纳出如下结
37、论:从而可归纳出如下结论:图形在坐标系中的放大等效于图形保持不变而让坐标系刻度图形在坐标系中的放大等效于图形保持不变而让坐标系刻度尺寸缩小;尺寸缩小;图形在坐标系中沿坐标轴正向移动等效于图形保持不变而让图形在坐标系中沿坐标轴正向移动等效于图形保持不变而让坐标系沿坐标轴负向移动;坐标系沿坐标轴负向移动;图形在坐标系的正向旋转等效于图形保持不变而让坐标系负图形在坐标系的正向旋转等效于图形保持不变而让坐标系负向旋转;向旋转;图形相对图形相对X X轴进行反射变换等效于该图形保持不变而让轴进行反射变换等效于该图形保持不变而让Y Y轴自轴自身发生反射变换等。身发生反射变换等。这一结论对计算机图形学分析非常有用。这一结论对计算机图形学分析非常有用。由此结论可知,由此结论可知,表示表示坐标系变换所需要的矩阵就是在坐标系中反向变换这些点所需要的坐标系变换所需要的矩阵就是在坐标系中反向变换这些点所需要的矩阵。矩阵。当用矩阵方法解决图形的连续几何变换时应注意:当用矩阵方法解决图形的连续几何变换时应注意:由于矩阵乘由于矩阵乘法一般不适用于交换律,法一般不适用于交换律,所以图形在连续变换时,所以图形在连续变换时,一般不能改变其变一般不能改变其变换的次序,否则不会得到正确结果。换的次序,否则不会得到正确结果。