全套课件·《计算机图形学》1.ppt

上传人(卖家):三亚风情 文档编号:3522932 上传时间:2022-09-11 格式:PPT 页数:197 大小:1.62MB
下载 相关 举报
全套课件·《计算机图形学》1.ppt_第1页
第1页 / 共197页
全套课件·《计算机图形学》1.ppt_第2页
第2页 / 共197页
全套课件·《计算机图形学》1.ppt_第3页
第3页 / 共197页
全套课件·《计算机图形学》1.ppt_第4页
第4页 / 共197页
全套课件·《计算机图形学》1.ppt_第5页
第5页 / 共197页
点击查看更多>>
资源描述

1、第1章 绪论1.1 计算机图形学的研究内容 计算机图形学的主要核心技术是如何建立所处理对象的模型并生成该对象的图形。研究内容:(1)几何模型构造技术 (2)图形生成技术(3)图形操作与处理方法(4)图形信息的存贮、检索与交换技术(5)人机交互及用户的接口技术(6)动画技术(7)图形输出设备与输出技术(8)图形标准与图形软件包的研究开发 1.2 计算机图形学与图像处理 计算机图形学和图像处理的区别与联系。1.3 计算机图形学的发展 50年代初,作为麻省理工学院(MIT)旋风1号计算机的附件,图形显示器诞生。1962年,美国麻省理工学院林肯实验室的Ivan E.sutherland发表了一篇题为“

2、Sketchpad:一个人一机通信的图形系统”的博士论文,其中首次使用了“计算机图形”(Computer Graphics)这个术语。此论文指出交互式计算机图形学是一个可行的、有用的研究领域,从而确立了计算机图形学作为一个崭新的学科分支的独立地位。1964年,孔斯(S.Coons)提出了用小块曲面片组合表示自由曲面,使曲面片边界上达到任意高阶连续的理论方法,称孔斯曲面。法国雷诺公司的贝赛尔(P.Bezier)也提出了Bezier曲线和曲面,他们被称为计算机辅助几何设计的奠基人。70年代是计算机图形学发展过程中一个重要的历史时期,计算机图形技术的应用进入了实用化的阶段,交互式图形系统在许多国家得

3、到应用;许多新的更加完备的图形系统不断被研制出来。除了在军事上和工业上的应用之外,计算机图形学还进入教育、科研以及事务管理等领域。图形显示器也随着计算机技术的发展不断完善。区域填充、裁剪、消隐等基本图形概念及其相应算法纷纷诞生,图形学进入了第一个兴盛的时期,并开始出现实用的CAD图形系统。图形软件功也纷纷制定。从80年代中期以来,超大规模集成电路的发展,为图形学的飞速发展奠定了物质基础。计算机的运算能力的提高,图形处理速度的加快,使得图形学的各个研究方向得到充分发展,图形学已广泛应用于动画、科学计算可视化、CAD/CAM、影视娱乐等各个领域。我国开展计算机图形技术的研究和应用开始于60年代。近

4、年来,随着改革开放以及我国方针政策的落实,科学技术得到发展应用,计算机图形学的理论和技术迅速发展,很快取得了可喜的成果。在硬件方面,我国陆续研制出多种系列和型号的绘图机、数字化仪和图形显示器,其技术指标居国际先进水平,已批量报入市场;与计算机图形学有关的软件的开发和应用也迅速发展。1.4 计算机图形学的应用领域 1.计算机辅助设计与制造(CAD/CAM)2计算机辅助教学(CAI)3.计算机动画4.管理和办公自动化5国土信息和自然资源显示与绘制6科学计算可视化第2章 图形系统2.1图形系统的组成 计算机图形系统由计算机硬件系统和软件系统两部分组成。严格说来,使用系统的人也是这个系统的组成部分。2

5、.1.1 图形系统的功能1计算功能2存储功能3对话功能4输入功能5输出功能2.1.2 图形系统的分类1以大型机为基础的图形系统2以中型或小型机为基础的图形系统3以工作站为基础的图形系统4以微机为基础的图形系统 2.2图形硬件设备 2.2.1图形显示设备1阴极射线管(CRT)最大偏转角 余辉时间 刷新 刷新频率 2彩色阴极射线管(彩色CRT)电子束穿透法 荫罩法3随机扫描显示器 工作原理:要显示的图形的定义是存放在刷新缓存的一组画线命令,有时刷新缓存称为显示文件存储器。为了显示指定的图形,系统周期性地按显示文件存储器中的一组命令,由显示控制器控制电子束的偏移,依次画出其组成线条,从而在屏幕上产生

6、图形;当所有画线命令处理完后,系统周期地返回到该刷新缓存的第一条画线命令。4存储管式显示器 存储管从表面上看类似于CRT,但是存储管的电子束不是直接打在荧光屏上,而是先将图形信息通过写入电子枪写在荧光屏前的存储栅上(写有图形信息的部分呈正电荷),再由读出电子枪发出低能量的漂浮电子流,通过收集栅使这些电子均匀地散开流向存储栅。存储栅上呈正电荷的地方吸引电子,使电子通过并轰击荧光材料而发光,在其他位置上则不通过电子,这样就能把存储栅上的图形“重写”在屏幕上。所以存储管式显示器既能产生图形,也能存储图形。5光栅扫描显示器 光栅扫描显示器是画点设备,它不能直接从单元阵列中的一个可编地址的像素画一条直线

7、到另一个可编地址的像素,只可能用尽可能靠近这条直线路径的像素点集来近似地表示这条直线。光栅扫描方式将CRT屏幕分成由像素构成的光栅网格,其中像素具有灰度和颜色;所有像素的灰度和颜色信息(也称为显示内容)保存在一个专门的内存区域中,称为帧缓冲存储器(Frame Buffer),简称帧缓存。CRT中的水平和垂直偏转线圈分别产生水平和垂直磁场,电子束则在不同方向磁场力作用下从左向右,从上向下扫描荧光屏,产生一幅幅光栅,并由显示内容来控制所扫描的像素点是否发亮,从而形成具有多种彩色及多种明暗度的图像。每一幅光栅称为一帧,每一条从左向右的直线称为扫描线(显示);虚线是扫描的逆程(消隐),也称为回扫,分为

8、水平回扫与垂直回扫两种。常用概念:图像刷新 行频、帧频 逐行扫描、隔行扫描 像素 分辨率 点距 显示速度 帧缓冲存储器(帧缓存、显示存储器)色彩与灰度等级 颜色查找表 6液晶显示器(Liquid-Crystal Display)可视角度 点距和分辨率 7等离子显示器 8图形处理器 2.2.2 图形绘制设备1绘图仪 笔式绘图仪 静电绘图仪2打印机 点阵式打印机 喷墨打印机 激光打印机 3摄像机 4颜色模型 RGB颜色模型 CMY颜色模型 HSL颜色模型 YUV颜色模型 2.2.3 图形输入设备 1键盘和鼠标 2数字化仪 3光笔 4跟踪球和空间球 5触摸板 6扫描仪2.3图形软件系统 2.3.1

9、图形软件的层次1零级图形软件2一级图形软件3二级图形软件4三级图形软件 2.3.2 图形软件标准1核心图形系统CGS2计算机图形核心系统GKS3程序员层次交互式图形系统PHIGS4图形库GL第3章 基本图形 生成算法3.1 生成直线的常用算法均假定所画直线的斜率k0,1。3.1.1 DDA画线算法DDA(Digital Differential Analyzer)画线算法也称数值微分法,是一种增量算法。它的算法实质是用数值方法解微分方程,通过同时对x和y各增加一个小增量,计算下一步的x、y值。已知一条直线段L(P0,P1),其端点坐标为:P0(x0,y0),P1(x1,y1)。可计算出直线的斜

10、率k为:假定端点坐标均为整数,取直线起点P0(x0,y0)作为初始坐标。画线过程从x的左端点x0开始,向x右端点步进,每步x递增1,y递增k(即直线斜率);取像素点(x,round(y)作为当前点的坐标。0101xxyyk3.1.2 中点画线算法 假设x坐标为xp的各像素点中,与直线最近者已确定,为P(xp,yp),那么,下一个与直线最近的像素只能是正右方的P1(xp+1,yp),或右上方的P2(xp+1,yp+1)两者之一。令M为P1和P2的中点,易知M的坐标为(xp+1,yp+0.5)。设Q是理想直线与垂直线x=xp+1的交点。显然,若M在Q的下方,则P2离直线近,应取为下一个像素;否则应

11、取P1。令a=y0-y1,b=x1-x0,c=x0y1-x1y0。构造判别式:d=a(xp+1)+b(yp+0.5)+c d的初始值d0=a+0.5b 在d0的情况下,取正右方像素P1,d1=a(xp+2)+b(yp+0.5)+c=d+a 在d0的情况下,取右上方像素P2,d2=a(xp+2)+b(yp+1.5)=d+a+b 由于我们使用的只是d的符号,而且d的增量都是整数,只是其初始值包含小数。因此,我们可以用2d代替d,来摆脱小数。如果进一步把算法中2*a改为a+a等等,那么这个算法不仅只包含整数变量,而且不包含乘除法,适合硬件实现。3.1.3 Bresenham画线算法 过各行各列像素中

12、心构造一组虚拟网格线,按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后确定该列像素中与此交点最近的像素。由图3-5不难看出:若st,则Si比较靠近理想直线,应选Si;若st,则Ti比较靠近理想直线,应选Ti。令dx=x2-x1,dy=y2-y1 递推公式:di的初值:当di0时,选Ti,当di0时,选Si,由于只包含加、减法和左移(乘2)的运算,而且下一个像素点的选择只需检查di的符号,因此Bresenham画线算法很简单,速度也相当快。)(2211iiiiyydxdydddxdyd 21)(21dxdyddiidyddii21 3.1.4 直线属性 1线型 2线宽 3线色3.2 生

13、成圆弧的常用算法3.2.1 圆的特性 圆心位于原点的圆有四条对称轴:x=0,y=0,x=y和x=-y直线。若已知圆弧上一点(x,y),可以得到其关于四条对称轴的其它7个点,这种性质称为八对称性,如下图所示。本节讨论的圆的生成算法均只计算从x=0到x=y分段内(1b区域)的像素点,其余的像素位置利用八对称性即可得出。3.2.2 中点画圆算法 假设x坐标为xp的各像素点中,与该圆弧最近者已确定,为P(xp,yp),那么,下一个与圆弧最近的像素只能是正右方的P1(xp+1,yp),或右下方的P2(xp+1,yp-1)两者之一。令M为P1和P2的中点,易知M的坐标为(xp+1,yp-0.5)。显然,若

14、M在圆内,则P1离圆弧近,应取为下一个像素;否则应取P2。判别式d:d的初始值为:在d0的情况下,取右下方像素P2,在d=0,则y=yi-1,di+2=d i+1+4(xi-yi)+10 如果d i+1=ymax的结点 对于留在AEL中的每个结点,执行xi+1=xi+1/k 对AEL中的各结点按x值从小到大排序 y=y+1,成为下一条扫描线的坐标 3.3.3 边填充算法基本原理:对每一条扫描线,依次求与多边形各边的交点,将该扫描线上交点右边的所有像素求补。算法虽然简单易行,但对于复杂图形而言,一些像素的颜色值需反复改变多次,且多边形外的像素处理过多,输入、输出的量比有序边表大的多。栅栏填充算法

15、:对于每条扫描线与多边形的交点,将交点与栅栏之间的扫描线上的像素取补,也就是说,若交点位于栅栏左边,则将交点之右、栅栏之左的所有像素取补;若交点位于栅栏右边,则将栅栏之右、交点之左的所有像素取补。多边形外的像素处理大大减少,被重复取补的像素数目也有减少,但仍有一些像素被重复取补。边标志算法:对多边形边界所在像素置一个特殊标志;对于每条与多边形相交的扫描线,从左至右逐个访问该扫描线上的像素。使用一个布尔变量inside来指示当前点的状态,若点在多边形内,则inside为真。若点在多边形外,则inside为假。inside 的初始值为假,每当当前访问像素为被打上标志的点,就把inside取反。对未

16、打标志的点,inside不变。若访问当前像素时,对inside作必要操作之后,inside为真,则把该像素置为多边形要填充的颜色。对每个像素只访问一次,硬件执行速度快。3.3.4 种子填充算法基本思想:假设在多边形区域内部至少有一个像素是已知的(此像素称为种子像素),由此出发找到区域内所有其他像素,并对其进行填充。由于区域可采用边界定义和内点定义两种方式,区域按连通性又可分为四连通区域和八连通区域两类,所以常用的种子填充算法有:边界表示的四连通区域种子填充算法 内点表示的四连通区域种子填充算法 边界表示的八连通区域种子填充算法 内点表示的八连通区域种子填充算法 1边界表示的四连通区域种子填充算

17、法基本思想:从多边形内部任一点(像素)出发,依“左上右下”顺序判断相邻像素,若其不是边界像素且没有被填充过,对其填充,并重复上述过程,直到所有像素填充完毕。可以使用栈结构来实现该算法,算法的执行步骤如下:种子像素入栈,当栈非空时,重复执行如下三步操作:(1)栈顶像素出栈;(2)将出栈像素置成多边形填充的颜色;(3)按左、上、右、下的顺序检查与出栈像素相邻的四个像素,若其中某个像素不在边界上且未置成多边形色,则把该像素入栈。2内点表示的四连通区域种子填充算法基本思想:从多边形内部任一点(像素)出发,依“左上右下”顺序判断相邻像素,如果是区域内的像素,则对其填充,并重复上述过程,直到所有像素填充完

18、毕。它也常称为漫水法。可以使用栈结构来实现该算法,算法的执行步骤如下:种子像素入栈,当栈非空时,重复执行如下三步操作:(1)栈顶像素出栈;(2)将出栈像素置成多边形填充的颜色;(3)按左、上、右、下的顺序检查与出栈像素相邻的四个像素,若其中某个像素是区域内的像素,则把该像素入栈。3扫描线种子填充算法算法思想:在任意不间断区间中只取一个种子像素(不间断区间指在一条扫描线上一组相邻元素),填充当前扫描线上的该段区间;然后确定与这一区段相邻的上下两条扫描线上位于区域内的区段,并依次把它们保存起来,反复进行这个过程,直到所保存的每个区段都填充完毕。可以填充有孔区域,对于每一个待填充区段,只需入栈一次,

19、因此提高了区域填充的效率。3.3.5 圆域的填充对每条扫描线,计算它与圆域的相交区间。接着,为每一条扫描线建立一个新圆表,存放在该行第一次出现的圆的有关信息。然后,为当前扫描线设置一个活化圆表。由于一条线与一个圆只能相交一个区间,所以在活性圆表中,每个圆只需一个结点即可。结点内存放当前扫描线的区间端点,以及用于计算下一条扫描线与圆相交的区间端点所需的增量。该增量用于在当前扫描线处理完毕之后,对端点坐标进行更新计算,以便得到下一条扫描线的区间端点。3.3.6 区域填充属性1填充样式2填充颜色3填充图案3.4 字符 3.4.1 字符存储与显示1点阵字符每个字符都是利用掩膜来定义,并将其写入帧缓存保

20、存和显示。点阵字符的显示:首先从字库中将它的位图检索出来,然后将检索到的位图写到帧缓冲器中。读取帧缓存中这些像素值,就可以在屏幕上显示此字符。如果将保存在帧缓存中某字符掩膜相应像素值均置成背景色或背景光强,就可以擦除帧缓存中的该字符。2矢量字符矢量字符被表达为一个点坐标的序列,相邻两点表示一条矢量,字符的形状便由矢量序列刻划。矢量字符的显示:首先从字库中读它的字符信息。然后取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符。3.4.2 字符属性显示的字符的外观由字体、字形、字号、字间距、行间距等属性控制。一般来说,字体确定风格,字形确定外观,字号确定尺寸。1单个字符属性2文本属

21、性3.5 裁剪 3.5.1 点的裁剪对于一点P(x,y),要判断其是否可见,可利用下面的不等式组来判断此点是否落在窗口范围内:满足上述不等式组的点则在窗口范围内,可见,予以保留;反之,该点落在窗口外,不可见,舍弃(裁剪)。xrxxlytyyb 3.5.2 直线裁剪 1Cohen-Sutherland裁剪算法(编码裁剪法)基本思想:对于每条待裁剪的线段P1P2分为三种情况处理:(1)若P1P2完全在窗口内,则显示该线段P1P2,简称“取”之;(2)若P1P2完全在窗口外,则丢弃该线段,简称“舍”之;(3)若线段既不满足“取”的条件,也不满足“舍”的条件,则求线段与窗口边界的交点,在交点处把线段分

22、为两段,其中一段完全在窗口外,可舍弃之,然后对另一段重复上述处理。Cohen-Sutherland直线剪裁算法以区域编码为基础,将窗口及其周围的八个方向以4 bit的二进制数进行编码,如图3-42所示。具体编码过程为:延长窗口的四条边线(yt、yb、xr、xl),将二维平面分成九个区域。任何一条线段的端点都按其所处区域赋予4位编码CtCbCrCl。otherxlxcotherxrxcotherybycotherytyclrbt01010101 如果某线段的两个端点的四位 二进制编码全为“0000”,可直 接保留;如果对两端点的四位二进制编码进行逻辑与(按位乘)运算,结果不为零,可直接舍弃;否则

23、,这一线段可能与窗口相交。此时,需要对线段进行再分割,即找到与窗口边线的一个交点,根据交点位置,也赋予四位二进制编码,并对分割后的线段重复进行检查,直到全部线段均被舍弃或被保留为止。裁剪窗口 2中点分割算法基本思想:当一条直线段既不能直接保留也不能直接舍弃,需要求其与区域的交点时,不断地用对分方法,舍去线段的不可见部分,用中点去逼近线段与窗口边界的交点。3梁友栋-barsky裁剪算法 定义直线的参数化方程为:首先按参数化形式写出裁剪条件:这四个不等式可以表示为形式:1011uyuyyxuxx4,3,2,1kqupkk 其中,参数pk,qk定义为:任何平行于裁剪边界之一的直线pk=0,其中k对应

24、于裁剪边界(k=1,2,3,4对应于左、右、下、上边界),如果还满足qk0,则线段完全在边界外,舍弃该线段。如果qk0,则该线段平行于裁剪边界并且在窗口内。当pk0时,线段从裁剪边界延长线的内部延伸到外部。当pk0时,可以计算出线段与边界k的延长线的交点的u值:u=qk/pk。梁友栋-Barsky裁剪算法在寻找线段可见部分(如果有可见线段)时可以归结为四个步骤:(1)如果对所有的k都有pk=0和qk0,删除线段并结束。否则继续执行下一步。(2)对所有pk0的k,计算rk=qk/pk,将1和各个rk值之中的最小值赋给u2。(4)如果u1u2,则线段完全落在裁剪窗口之外,不可见,可直接舍弃。否则,

25、裁剪后线段的端点由参数u的两个值u1、u2计算出来。3.5.3 多边形裁剪1Sutherland-Hodgman算法基本思想:每次用窗口的一条边界对多边形进行裁剪,把落在窗口外部的图形去掉,落在窗口内部的图形保留,并把它作为下一次待裁剪的多边形。这样,当连续用窗口的四条边界对原始多边形进行裁剪后,最后得到的就是裁剪后的结果多边形。2Weiler-Atherton裁剪算法基本思想:将待裁剪多边形(简写为P1)和裁剪矩形窗口(简写为P2)均设定为按顺时针方向排列。算法从P1的任一顶点出发,沿着它的边向下处理,当P1和P2相交时(假定交点为I):(1)若P1的边是进入P2,则继续沿P1的边往下处理,

26、同时输出该线段;(2)若P1的边是从P2中出来,则从此交点I开始,沿着窗口边框向右检测P2的边,即用P2的有效边框去裁剪P1的边,找到P1和P2最靠近交点I的新交点,同时输出由I到S之间窗边上的线段;(3)返回交点I,再沿着P1处理各条边,直到处理完P1的每一条边,回到起点为止。3.5.4 曲线裁剪对于被裁剪的曲线所围成的区域,找出包围(外接)此区域的最小矩形,称其为曲线边界对象的包围矩形(或包围盒),然后测试包围矩形是否与矩形裁剪窗口有重叠。如果包围矩形完全落在裁剪窗口内,则全部保留该对象;如果包围矩形完全落在裁剪窗口外,则全部舍弃该对象;如果不满足上述矩形测试的条件,则要求解直线-曲线联立

27、方程组,得出裁剪窗口与曲线边界线的交点,即裁剪交点,再进行判断。3.5.5 字符裁剪1字符串裁剪把整个字符串作为整体来对待。2字符裁剪分别对每个字符来处理。3矢量像素裁剪每个字符都看作是由一系列矢量(线段)或像素构成的,故对每一个矢量或像素都必须个别地进行裁剪。3.5.6 三维图形的裁剪把二维线段的Cohen-Sutherland裁剪算法稍加改进,就能推广到三维平行投影的裁剪算法中。对空间任意一点P(x,y,z)按其所处位置赋予6位二进制编码。(1)两个端点的编码全为“0000”,直接保留;(2)对两端点的编码进行逻辑与运算,结果不为零,可直接舍弃;(3)否则,计算出线段与窗口表面的交点,并将

28、线段分段后继续处理,直到余下的线段符合前两种简单情况为止。3.6 反走样对图形进行光栅化时,是用离散的像素显示在连续空间定义的对象。这种用离散量表示连续量时引起的失真现象称为走样。用于减少或消除走样的技术称为反走样。3.6.1 光栅图形的走样现象1阶梯形走样2狭小图形遗失3细节失真 3.6.2 常用反走样技术1提高分辨率2简单的区域取样3加权区域取样第4章 图形变换4.1二维图形几何变换 4.1.1齐次坐标所谓齐次坐标表示法就是将一个原本是n维的向量用一个n+1维向量来表示。例如:二维坐标点P(x,y)的齐次坐标为:(Hx,Hy,H)其中,H是任一不为0的比例系数。4.1.2二维图形的基本变换

29、如果用P=x y 1表示XY平面上一个未被变换的点,用P=x y 1表示P点经某种变换后的新点,用一个3*3矩阵T表示变换矩阵:则图形变换可以统一表示为:P=PTihgfedcbaT1平移变换 平移是一种不产生变形而移动物体的刚体变换。假定从点P平移到点P,点P沿X方向的平移量为m,沿Y方向的平移量为n,构造平移矩阵T:1010001nmT2比例变换基本的比例变换是指图形相对于坐标原点,按比例系数(Sx,Sy)放大或缩小的变换。假定点P相对于坐标原点沿X方向放缩Sx倍,沿Y方向放缩Sy倍,构造比例矩阵T:1000000SySxT如果比例变换矩阵为如下形式:此时进行整体比例变换,比例系数为(1/

30、S,1/S)。ST000100013旋转变换基本的旋转变换是指将图形围绕圆心逆时针转动一个角度的变换。假定从P点绕原点逆时针旋转角到P点,构造旋转矩阵T:1000cossin0sincosT4对称变换(1)关于X轴的对称变换点P(x,y)关于X轴的对称点为 P(x,-y),构造对称矩阵T:100010001T(2)关于Y轴的对称变换点P(x,y)关于Y轴的对称点为 P(-x,y),构造对称矩阵T:100010001T(3)关于坐标原点的对称变换点P(x,y)关于坐标原点的对称点为 P(-x,-y),构造对称矩阵T:100010001T(4)关于y=x(+45)直线的对称变换点P(x,y)关于y

31、=x直线的对称点为 P(y,x),构造对称矩阵T:100001010T(5)关于y=-x(-45)直线的对称变换点P(x,y)关于y=-x直线的对称点为 P(-y,-x),构造对称矩阵T:100001010T5错切变换 错切变换也称剪切、错位、错移变换,用于产生弹性物体的变形处理。(1)沿X轴方向关于y的错切点P(x,y)沿X轴方向关于y进行错切变换,错切角度为。令e=tg,构造错切矩阵T:10001001eT(2)沿Y轴方向关于x的错切点P(x,y)沿Y轴方向关于x进行错切变换,错切角度为。令b=tg,构造错切矩阵T:10001001bT 6变换矩阵的功能分区五种二维基本变换,它们的变换矩阵

32、都可以用如下的3*3矩阵来描述:(1)左上角的2*2子块可实现比例、旋转、对称、错切四种基本变换;(2)左下角的1*2子块可实现平移变换;(3)右上角的2*1子块可实现投影变换;(4)右下角的1*1子块可实现整体比例变换。ihgfedcbaT 4.1.3复合变换 对于任何一个比较复杂的变换,都可以转换成若干个连续进行的基本变换。这些基本几何变换的组合称为复合变换,也称为级联变换。设图形经过n次基本几何变换,其变换矩阵分别为T1,T2,Tn,则称T=T1T2 Tn为复合变换矩阵。1连续平移变换 2连续比例变换 3连续旋转变换 4相对任一参考点的二维几何变换 5以平面内任一直线为对称轴进行对称变换

33、4.2 三维图形几何变换 4.2.1 三维图形的基本变换如果用P=x y z 1表示三维空间上一个未被变换的点,用P=x y z 1表示P点经某种变换后的新点,用一个4*4矩阵T表示变换矩阵:则图形变换可以统一表示为:P=PTsnmlrihgqfedpcbaT同样可对三维图形几何变换的4*4矩阵T进行功能分区,其中:(1)左上角的3*3子块可实现比例、旋转、对称、错切四种基本变换;(2)左下角的1*3子块可实现平移变换;(3)右上角的3*1子块可实现投影变换;(4)右下角的1*1子块可实现整体比例变换。1平移变换假定从点P平移到点P,点P沿X方向的平移量为l,点P沿Y方向的平移量为m,沿Z方向

34、的平移量为n,则可构造平移矩阵T:1010000100001nmlT 2比例变换(1)局部比例变换假定点P相对于坐标原点沿X方向放缩Sx倍,沿Y方向放缩Sy倍,沿Z方向放缩Sz倍,其中Sx、Sy和Sz称为比例系数,则可构造比例矩阵T:1000000000000SzSySxT(2)整体比例变换其变换矩阵为:S的取值所起到的作用与二维变换相同。ST000010000100001 3旋转变换下面讨论的三种基本旋转变换,都是考虑在右手坐标系下,某点绕坐标轴逆时针旋转角的情况。(1)绕Z轴旋转构造旋转矩阵T:1000010000cossin00sincosT(2)绕X轴旋转 构造旋转矩阵T:(3)绕Y轴

35、旋转构造旋转矩阵T:10000cossin00sincos00001T10000cos0sin00100sin0cosT 4对称变换(1)关于坐标原点的对称变换(2)关于坐标轴的对称变换(以关于X轴的对称变换为例)1000010000100001T1000010000100001T(3)关于坐标平面的对称变换(以关于XOY坐标平面的对称变换为例)1000010000100001T 5错切变换三维图形错切变换可以沿X轴、Y轴、Z轴三个方向产生错切变换,构造错切变换矩阵T:根据元素所在的列,可以判断出是沿哪个坐标轴方向进行错切。根据元素所在的行,可以判断出是关于哪个坐标变量的错切。10000101

36、01hgfdcbT 4.2.2 复合变换 1相对空间任一点的几何变换 2相对空间任一直线的几何变换4.3 投影变换4.3.1 投影变换的基本概念将三维空间中的物体变为二维图形表示的过程称为投影变换。投影变换的分类:投影的要素包括投影对象、投影中心、投影平面、投影线和投影。要作投影变换的物体称为投影对象;在三维空间中,选择一个点,记这个点为投影中心;不经过这个点再定义一个平面,记这个平面为投影平面;从投影中心向投影平面引任意多条射线,记这些射线为投影线;穿过物体的投影线与投影面相交,在投影面上形成物体的像,这个像记为三维物体在二维投影面上的投影。投影变换可分为两大类:透视投影和平行投影。它们的本

37、质区别在于:透视投影的投影中心到投影面之间的距离是有限的,而平行投影的投影中心到投影面之间的距离是无限的。4.3.2 平行投影平行投影的投影中心与投影平面之间的距离为无穷远;投影线之间相互平行;平行线的平行投影仍是平行线。按照投影方向与投影平面的交角不同,平行投影分为两类:正平行投影和斜平行投影。1正平行投影正平行投影的投影方向垂直于投影平面。按照投影平面与坐标轴的交角不同,正平行投影又可分为两类:正投影与正轴测。当投影平面与某一坐标轴垂直时,得到的投影为正投影;否则,得到的投影为正轴测。(1)正投影正投影也称为三视图。按照投影平面是否与Y轴、X轴、Z轴垂直,正投影分为主视图、侧视图和俯视图三

38、种,此时投影方向分别与这个坐标轴的方向一致。(2)正轴测根据变形系数之间的关系,正轴测投影可分为正等测投影、正二测投影、正三测投影。2斜平行投影斜平行投影的投影方向不垂直于投影平面,而是与投影面成夹角。在工程制图中,经常选择一些兼有美观及绘图方便的 角来作斜平行投影,常用的两种是斜等测和斜二测。4.3.3 透视投影 1透视投影的术语和分类透视投影的投影中心与投影平面之间的距离为有限的。投影线(视线)从投影中心(视点)出发,投影线是不平行的。对于透视投影,一束平行于投影平面的平行线的投影仍可保持平行,而不平行于投影平面的平行线的投影会收敛到一个点,这个点称为灭点(Vanishing Point)

39、。平行于坐标轴的平行线在投影平面上形成的灭点称为主灭点。根据主灭点的个数,透视投影可分为一点透视、二点透视和三点透视。(1)一点透视:有一个主灭点,即投影平面与一个坐标轴正交,与另外两个坐标轴平行。(2)二点透视:有两个主灭点,即投影平面与两个坐标轴相交,与另一个坐标轴平行。(3)三点透视:有三个主灭点,即投影面与三个坐标轴都相交。2 透视投影的表示方法假设投影中心在坐标原点,投影平面与Z轴垂直,在zd的位置上。点P(x,y,z)在投影平面上的投影点为:P(x,y,d),构造透视投影的变换矩阵T:0000/110000100001dT 3透视异常(1)透视缩小效应(2)灭点效应(3)观察混淆(

40、4)布局失真4.4 坐标系统及其变换 4.4.1 坐标系统1建模坐标系(MC)2世界坐标系(WC)3观察坐标系(VC)4投影坐标系(PC)5设备坐标系(DC)4.4.2 模型变换模型变换是将建模坐标系中的形体转换为世界坐标系中描述的变换。一旦用户定义建模坐标系中的“局部”物体,通过指定建模坐标系的原点在世界坐标系中的位置,然后通过前面介绍过的几何变换,就可很容易地将“局部”物体放入世界坐标系内,使它由局部上升为全局。4.4.3 观察变换观察变换是将一个三维对象在世界坐标系统中的坐标转变为在观察坐标系统中的坐标过程。1观察平面 2观察体 3规范化观察体 4从世界坐标系到观察坐标系的变换4.4.4

41、 窗口-视区变换窗口用来确定要显示的物体,视区确定实际显示图形。实际情况中,窗口与视区的大小往往不一样。如果要在视区正确地显示形体,必须将其从窗口变换到视区,此过程称为窗口-视区变换。构造窗口-视区变换的变换矩阵 T:其中:wybwybwytvybvytvybdwybwytvybvytcwxlwxlwxrvxlvxrvxlbwxlwxrvxlvxra10000dbcaT第5章 曲线和曲面5.1 参数表示曲线和曲面的基础知识 5.1.1 曲线和曲面的表示方法1显式表示显式表示是将曲线上各点的坐标表示成方程的形式,且一个坐标变量能够用其余的坐标变量显式的表示出来。2隐式表示隐式表示不要求坐标变量之

42、间一一对应,它只是规定了各坐标变量必须满足的关系。3参数表示参数表示是将曲线上各点的坐标表示成参数方程的形式。假定用t表示参数,参数t在0,1区间内变化,当t=0时,对应曲线段的起点,当t=1时,对应曲线段的终点。与显式、隐式方程相比,用参数方程表示曲线和曲面更为通用,其优越性主要体现在以下几个方面:(1)曲线的边界容易确定。(2)点动成线。(3)具有几何不变性。(4)易于变换。(5)易于处理斜率为无穷大的情形。(6)表示能力强。5.1.2 位置矢量、切矢量、法矢量、曲率与挠率1位置矢量2切矢量3法矢量主法矢量、副法矢量 法平面、密切平面、副法平面 1,0)(),(),()(ttztytxtP

43、)()()()()(tztytxdtdPtPtT 4曲率和挠率ctkc0lim)(ctc0lim)(5.1.3 样条表示1插值、逼近和拟合给定一组称为控制点的有序坐标点,通过这些控制点,可以构造出一条样条曲线:如果样条曲线顺序通过每一个控制点,称为对这些控制点进行插值,所构造的曲线称为插值样条曲线;如果样条曲线在某种意义下最接近这些控制点(不一定通过每个控制点),称为对这些控制点进行逼近,所构造的曲线为逼近样条曲线;插值和逼近统称为拟合。2曲线的连续性(1)参数连续性 0阶参数连续性 1阶参数连续性 2阶参数连续性(2)几何连续性 0阶几何连续性 1阶几何连续性 2阶几何连续性 5.2 Her

44、mite曲线 5.2.1 n次参数多项式曲线给定n+1个控制点,可以得到如下n次参数多项式曲线p(t):经过分解,上式可改写为如下形式:通常,将TM矩阵称为n次参数多项式曲线的基函数(或称调和函数、混合函数)。0,1 t1)()()()(000111CTcbacbacbatttztytxtpzyxzyxznynxnn 0,1 t)(GMTtp 5.2.2 三次Hermite曲线的定义如果给定一段三次参数样条曲线的两个端点的位置矢量为p(0)、p(1),切矢量为p(0)、p(1),则三次Hermite曲线的矩阵表示为:通常,将T称为矢量矩阵,将Mh称为通用变换矩阵,将Gh称为Hermite系数,

45、将TMh称为Hermite基函数。0,1t )1()0()1()0(00010100123311221 )(23pppptttGMTtphh5.3 Bezier曲线 5.3.1 Bezier曲线的定义在空间给定n+1个控制点,其位置矢量表示为Pi(i=0,1,n)。可以逼近生成如下的n次Bezier曲线:其中,称为伯恩斯坦(Bernstein)基函数,它的多项式表示为:1,0)()(0,ttBPtPninii)(,tBni 1,0)1()!(!)1()(,tttininttCtBiniiniinni依次用直线段连接相邻的两个控制点Pi,Pi+1,(i=0,1,n 1),便得到一条n边的折线P0

46、P1P2Pn,将这样一条n边的折线称为Bezier控制多边形(或特征多边形),简称为Bezier多边形。Bezier曲线和它的控制多边形十分逼近,通常认为控制多边形是对Bezier曲线的大致勾画,因此在设计中可以通过调整控制多边形的形状来控制Bezier曲线的形状。1一次Bezier曲线(n=1)一次多项式,有两个控制点,其矩阵表示为:显然,它是一条以P0为起点、以P1为终点的直线段。0,1t 01111)()()()(101,111,00101,PPttBPtBPtBPtPiii 2二次Bezier曲线(n=2)二次多项式,有三个控制点,其矩阵表示为:显然,它是一条以P0为起点、以P2为终点

47、的抛物线。0,1t 0010221211 )()()()()(21022,222,112,00202,PPPtttBPtBPtBPtBPtPiii 3三次Bezier曲线(n=3)三次多项式,有四个控制点,其矩阵表示为:可知,三次Bezier曲线是一条以P0为起点、以P3为终点的自由曲线。0,1 t00010033036313311 )()()()()()(3210233,333,223,113,00303,PPPPttttBPtBPtBPtBPtBPtPiii 5.3.2 Bernstein基函数的性质1正性2端点性质3权性(规范性)4对称性5最大值6递推性7导函数 5.3.3 Bezier

48、曲线的性质 1端点性质 位置矢量 切矢量 二阶导矢 2对称性 3凸包性 4几何不变性 5变差缩减性 6仿射不变性 5.3.4 Bezier曲线的生成 1Bezier曲线的生成算法参见例5-2 2手工绘制一段Bezier曲线 3Bezier曲线的连接 4Bezier曲线的升阶与降阶5.4 B样条曲线 5.4.1 B样条曲线的定义在空间给定m+n+1个控制点,用向量Pi表示(i=0,1,m+n),称n次参数曲线:为n次B样条的第i段曲线(i=0,1,m)。其中:Fl,n(t)是新引进的B样条基函数,即:这样一共有m+1段B样条曲线,统称为n次B样条曲线。nlttFPtPnlnllini,1,010

49、)()(0,,nltjlntCntFnlnjjnjnl,1010)()1(!1)(01,依次用直线段连接相邻的两个控制点Pi+l与Pi+l+1(l=0,1,n 1),将得到的折线称为第i段的B控制多边形。由第i段的B控制多边形决定的B样条曲线称为第i段B样条曲线。由于任意一段的B样条曲线具有相同的几何性质,因此取i=0,即第0段的B样条曲线进行研究,第0段的B样条曲线定义式为:nlnlltFPtP0,)()(10 t 5.4.2 B样条曲线的表示及性质 以三次B样条曲线为例:1、三次B样条曲线的矩阵表示100141030303631331)1(61)(321023tPPPPttttP 2、三次

50、B样条曲线的端点性质 位置矢量 切矢量 二阶导数 3、三次B样条曲线的连续性 5.4.3 B样条曲线的生成 1B样条曲线的生成算法参见例5-9 2反求三次B样条曲线控制点 3B样条曲线与Bezier曲线的转换5.5Coons曲面 5.5.1 参数曲面的基本概念定义双参数曲面的方程为:P(u,v),u,v0,1则曲面片的四条边界可以由参数曲线P(u,0),P(u,1),P(0,v),P(1,v)定义,曲面片的四个角点可以由P(0,0),P(0,1),P(1,0),P(1,1)定义。5.5.2 Coons曲面的定义应用Hermite曲线的基函数,可以构造出一个双三次Coons曲面,其矩阵表示为:其

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(全套课件·《计算机图形学》1.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|