500 likes | 834 Views
计算机图形学与 CAD 技术. 华中科技大学 国家 CAD 支撑软件工程技术研究中心 王彦伟 Ywwang_cad@mail.hust.edu.cn. 2. 线框图处理技术. 本章目的: 了解基本图形的生成原理 了解线框图形的变换技术 了解线框图形的显示技术. 2.1 .图形生成 2.1.1 图形软件接口 2.1.2 基本图形扫描转换算法 2.2 .图形几何变换 2.2.1 二维图形几何变换 2.2.2 三维图形几何变换 2.3 .二维图形显示 2.3.1 坐标系统 2.3.2 二维图形显示流程 2.3.3 二维裁减算法
E N D
计算机图形学与CAD技术 华中科技大学 国家CAD支撑软件工程技术研究中心 王彦伟 Ywwang_cad@mail.hust.edu.cn
2.线框图处理技术 本章目的: • 了解基本图形的生成原理 • 了解线框图形的变换技术 • 了解线框图形的显示技术
2.1.图形生成 2.1.1 图形软件接口 2.1.2 基本图形扫描转换算法 2.2.图形几何变换 2.2.1 二维图形几何变换 2.2.2 三维图形几何变换 2.3.二维图形显示 2.3.1 坐标系统 2.3.2 二维图形显示流程 2.3.3 二维裁减算法 2.4.三维图形显示
计算机图形学的研究内容 探讨的主要问题是用计算机进行图形信息的表达、输入、存储、显示、输出、检索及图形运算等。具体地说,大致有以下内容: (1)图形的输入:研究如何把要处理的图形输入到计算机内,以便让计算机进行各种处理。 (2)产生图形的算法:研究在显示器或其它输出设备上产生图形的各种算法; (3)图形的数据结构:研究图形在计算机内的表示方法; (4)图形的变换:研究图形的各种几何变换; (5)图形运算:包括图形的分解、组合等; (6)图形语言:各种图形处理功能的语言; (7)图形软件的标准化:图形软件与设备无关及接口兼容性。 总的来说,计算机图形学应该解决和研究下列一些问题: (1)图形表示和处理的数学方法及其实现的计算机算法; (2)设计一个好的图形软件系统; (3)设计与实际应用相结合的图形应用系统。
图形的具体应用范围很广,但是从基本的处理技术看只有两类:图形的具体应用范围很广,但是从基本的处理技术看只有两类: • 一类是线条,如工程图、地图、曲线图表等; • 另一类是明暗图,与照片相似。为了生成图形,首先要有原始数据或数学模型,如工程人员构思的机械零件模型,飞机的总体方案模型,地形航测的判读数据等等。这些数字化的输入经过计算机处理后变成图形输出。 在此仅从CAD需求角度来介绍相关研究内容: 工程产品设计中的二维工程图、三维实体模型的显示 本章主要介绍:二维基本图形生成原理、图形变换原理、图形显示流程
2.1、基本图形生成 典型的图形库中的基本函数用来描述图元(直线、多边形、球面和其他对象)、设定颜色、观察选择的场景和进行旋转或其他变换等。通用图形程序设计软件包有GL、OpenGL、VRML、Java 2D和Java 3D等。由于图形函数库提供了程序设计语言(如C++)和硬件之间的接口,所以这一组图形函数称为计算机图形应用编程接口。如果使用C++编写应用程序时,可以使用图形函数进行组织并在输出设备上显示图形。 2.1.1 图形软件接口 GL_POINTS; GL_LINE; GL_CIRLE; …
2.1、基本图形生成 2.1.1 图形软件接口 void lineSegment (void) { glClear (GL_COLOR_BUFFER_BIT); //Clear display window. glColor3f(1.0,0.0,0.0); glBegin (GL_LINES); glVertex2i(180,15); // glVertex2i(10,145); glEnd(); glFlush(); // }
2.1、基本图形生成 线 点 圆 2.1.2 图形扫描转换算法
光栅显示器工作原理 显示器用于显示字符、图形(触摸显示屏还可作为输入设备)。常规光栅显示器上的图形由荧光屏的点阵组成 阴极射线管显示器(Cathode RadiativeTube) CRT是通过电子枪发射电子束,经过聚焦系统、加速电极、偏转系统,按行列次序扫描点矩阵,轰击到荧光屏的不同点阵部位,被其内表面的荧光物质吸收,在该点发光产生可见的图形。 彩色CRT显示器的每个扫描点(即象素)有三个荧光点(红、绿、蓝三基色),由三支电子枪通过控制各自电子束强度实现不同亮度的颜色。 若每支电子枪发出的电子束的强度为256个等级,则显示器能同时显示256*256*256=16M种颜色,称为真彩色系统。
象素(Pixel) 荧光屏上画面的每一光点称为一个象素。 分辨率 (Resolution) 若屏幕尺寸一定,水平和竖直方向上能识别的最大像素个数描述,如800*600,1024*768,1280*1024等。 刷新频率 每秒钟重绘屏幕的次数, CRT产生稳定图像所需要的最小刷新频率: = 1秒 / 荧光物质的持续发光时间 (Hz) 液晶显示器原理不同于CRT,不受刷新频率影响。但是液晶显示有拖尾现象,主要是因为液晶偏转延迟所致,延时越长,拖尾越重。 与电视工作原理类似,CRT电子束从上到下、从左到右扫描进行,每扫描一遍称为一帧。 帧缓冲存储器 每个象素都对应于Buffer中的一个存储单元,用来存储象素颜色(灰度)值的存储器,称为帧缓冲存储器,俗称显存。 象素的亮度值控制电子束对荧光屏的轰击强度,象素在帧缓存寄存器中的位置编码控制电子束的偏转位置。
直线生成算法 k1 k ≤1 画直线是CAD中最常用的操作。数学上的直线是没有宽度的点集,显然,光栅显示器只能近地似显示直线。画一条从(x1, y1)到(x2, y2)的直线,实质上是寻找最佳逼近直线的象素序列,并填入色彩数据的过程(如左图),这个过程也称为直线光栅化,也称直线扫描转换。目前常用算法有:直线DDA算法、中点算法、Bresenham算法等。 直线中每一点坐标都可由前一点坐标变化一个增量(△x, △ y)而得到,即表示为递归式:xi+1 = xi+ △ x,yi+1=yi+ △ y,并有关系: △y = k · △ x,递归式的初值为直线的起点(x1, y1),考虑象素为整数,则算法过程为: 1)直线DDA算法 (即微分算法) -算法步骤 △x= x2-x1, △y=y2-y1,k= △y/ △x yi+1 = kxi+1+b = k(xi+1)+b = yi+k (xi , yi)→(xi+1, yi+k) yi = round (yi) = (int) (yi+0.5) 上述算法简单,易实现; 但有浮点数取整运算,不利于硬件实现,效率低; 算法仅适用于k ≤1的情形:x每增加1,y最多增加1。当 k1时,必须把x,y互换。 -算法特点
直线起点P0(0,0),终点P1(5,2) 算法应用举例 DDA算法实现
y (-x,y) (x,y) (-y,x) (y,x) R x o (-y,-x) (y,-x) (-x,-y) (x,-y) M P P1 P2 圆弧生成算法 圆也是图形系统中常用的元素。我们将圆定义为所有距离中心位置(xc, yc) 为给定值 r的点集。圆的方程为: 圆的定义 为叙述方便,仅考虑圆心在原点的圆(其它位置圆可平移到原点位置)。不妨设函数: 构造判别式 显然有: F(x,y)< 0,则(x,y)位于圆边界内 F(x,y)= 0,则(x,y)位于圆边界上 F(x,y)> 0,则(x,y)位于圆边界外 考虑圆的八对称性,不妨以第二个八分圆进行分析,其它八分圆则可通过镜像实现。
② Pi (xi,yi) H (xi+1,yi) ① ④ ③ D (xi+1,yi-1) V (xi,yi-1) ⑤ 圆的Bresenham算法 圆的多边形逼近算法 其它画圆算法 椭圆的生成算法 自由曲线的生成算法 其它曲线算法 算法小结 研究图形的基本生成算法,其宗旨是尽快提高算法的计算速度、精度及可靠性,为各种图形平台提供算法支撑。 原则:尽量避免除法、浮点运算,尽可能采用整数加减及移位等运算。
字符生成算法 基本概念 字符是指字母、数字、汉字、标点等符号。为了在显示器等输出设备上输出字符,必须要有每个字符的图形信息,这些信息保存在系统的字库中。字符的图形表示方法有两种:点阵表示和矢量表示。 计算机中,字符由一个数字编码唯一标识,对于一个字符来说,它所对应的编码是由它所属的字符集决定。 目前,国际上普遍采用的字符编码是ASCII码。用七位二进制数进行编码,共能表示128个字符,其中编码 0~31表示控制字符(不可显示),编码32~127表示英文字母、数字、标点符号等可显示字符。一个字符的ASCII码用一个字节(8位)表示,其最高位不用或者作为奇偶校验位。 ASCII码 国标码 我国除采用ASCII码外,还制定了汉字编码国家标准字符集(国标码),共收录常用汉字6763个,图形符号682个。所有汉字和图形符号组成一个94×94的矩阵,在此方阵中,每一行称为“区”,用区码来标识;每一列称为“位”,用位码来标识,一个符号由一个区码和一个位码共同标识。区码和位码分别需要7个二进制位,同样,为了方便,各采用一个字节表示。所以在计算机中,汉字(符号)国标码占用两个字节。 给定一个字节,如何来确定它代表的是ASCII码,还是国标码的区码和位码?通常采用字符中冗余的最高位来标识:最高位为0时,表示ASCII码;最高位为1时,表示汉字编码的区码(高位字节)或位码(低位字节)。 ASCII码与国标码的分辨
A A P E B P B E D D C C 区域填充算法 光栅显示的重要特点是能进行面着色,区域填充就是在一个闭合区域内填充某种颜色或图案。区域填充一般分两类:多边形填充和种子填充。 1) 多边形填充算法 给定一顶点序列(Pi ,i=0,1,…,n ),依次连线构成一封闭多边形。 多边形内点判别 ——射线法 • 若射线与多边形边界的交点个数为奇数时,则该点为内点;反之,交点个数为偶数时,则该点为外点。 • 当扫描线过多边形顶点时,则交点为奇异点。奇异点为局部极值点应看成两点,若为非极值点应看成一点。 夹角和为0,点p为外点;夹角和为360°,点p为内点 多边形内点判别 ——夹角法
2.2、图形几何变换 1)二维几何变换 2.2.1二维图形几何变换 二维图形几何变换可通过矩阵运算实现,令 : 称T为变换矩阵,有: 这里[x’,y’]为变换后点的坐标,[x,y]为变换前点的坐标,变换矩阵中a,b,c,d的不同取值,可以实现各种不同变换,从而达到对图形进行变换的目的 。 二维图形的基本几何变换包括: 比例变换、对称变换、错切变换、旋转变换、平移变换等
二维比例变换 二维比例变换 在变换矩阵 中,令 b = c = 0, 则比例变换为: 式中a,d分别为x,y方向上的比例因子 二维对称变换 对坐标轴的对称变换: 1)对y轴对称: 2)对X轴对称: 对坐标原点的对称变换: 对原点对称:
在二维空间里,我们规定:图形的旋转是指绕坐标系原点旋转θ角,且逆时针为正,顺时针为负,变换矩阵为:在二维空间里,我们规定:图形的旋转是指绕坐标系原点旋转θ角,且逆时针为正,顺时针为负,变换矩阵为: 二维旋转变换 由式 可知: 对右图字母 T 绕坐标原点进行旋转变换(旋转60°),则变换后的坐标为: 旋转变换举例
二维平移变换 上述四种变换都可以通过变换矩阵 来实现,但是,若实现平移变换,变换前后的坐标必须满足下面的关系: 式中△x,△y是平移量,应为常数,但是应用前述变换矩阵对点进行变换,则有: 上式中的cy,bx均非常量,因此用原来的2×2的变换矩阵是无法实现平移变换。 解决方法:将变换矩阵增加一行一列,则可对点进行平移变换
齐次变换 在平移变换中,我们将[x y]扩充为[x y 1] 实际上是由二维向量变为三维向量。 这种用三维向量表示二维向量的方法叫做齐次坐标法。进一步推广,用n+1维向量表示n维向量的方法称之为齐次坐标法。 所谓齐次坐标就是用n+1维向量表示n维向量得到的坐标。对齐次坐标进行坐标变换称为齐次变换,相应的变换矩阵称为齐次变换矩阵。 设三维空间点P的坐标为(x,y,z),它是唯一的。若用齐次坐标表示时,则为(hx,hy,hz,h),且不唯一。 齐次变换定义 将Oxy坐标系增加一与x轴和y轴正交的w轴。 在 w = 1 的平面上有点 P1(x,y,1),则当w由0变化到无穷时,齐次坐标 Pw(xw,yw,w) 将处在由OP1定义的射线OQ上。二维坐标则是该射线在w=1平面上的交点,则: 齐次变换几何意义 二维齐次变换表示了在 w = 1 平面上点的坐标变换,即 P1 到 P1*的坐标变换。
二维齐次变换 其中2×2阶矩阵 可以实现图形的比例、对称、错切、旋转等基本变换; 1×2阶矩阵 可以实现图形的平移变换; 2×1阶矩阵 可以实现图形的透视变换, 而[s]可以实现图形的全比例变换。 二维齐次变换矩阵为: 二维几何变换汇总表
二维平移变换实例 △ △
绕任意点旋转变换 前面介绍的几种变换可用统一的变换矩阵来实现,称之基本变换。但有些变换仅用一次基本变换是不够的,必须由两次或多次基本变换组合才能实现。这种由多种基本变换组合而成的变换称之为组合变换,相应的变换矩阵叫做组合变换矩阵。 二维组合变换 设坐标P经过n次变换T1,T2,…,Tn到P*,则变换结果为: P* = PT1T2…Tn = PT 式中,T = T1T2…Tn 为总的变换矩阵,组合变换的目的是将一个变换序列表示为一个变换矩阵。 平面图形绕任意点C(x,y)旋转θ角需要通过组合变换实现,步骤如下: (1)将旋转中心平移到原点; (2)将图形绕坐标系原点旋转θ角; (3)将旋转中心平移回到原来位置。 组合变换矩阵的顺序不能颠倒,顺序不同,则变换的结果亦不同,如右图:
2.2、图形几何变换 2.2.2三维图形几何变换 表达三维几何形体可采用实体模型来表达,也就是说: (1)三维几何形体由一系列点集和这些点集之间的连接关系表达,通常用点表、边表、环表、面表等信息表达。 三维几何变换 (2)当一个形体在坐标系中平移、旋转时,只是改变点集的坐标位置,而不改变各点、边、面之间的任何连接关系。 (3)几何形体的三维变换只需对形体的点表信息进行变换即可。 (注:在CAD系统中,三维形体中的边的方程及面的方程都是由点集信息推导出来的,不需直接对边的方程和面的方程进行变换)
T = 平移 缩放、旋转、错切 透视变换 整体缩放 三维几何变换是二维几何变换的扩展,用三维齐次变换矩阵(4×4矩阵)表示,可表示包括平移变换、比例变换、错切变换、对称变换、绕坐标轴的旋转变换、绕空间任意轴的旋转变换等。三维齐次变换矩阵如下: 三维齐次变换矩阵 sx,sy,sz>0,沿坐标轴方向作放缩变换; 当sx=1,sy=sz=-1时,相对于x轴中心对称; 当sx=-1,sy=sz=1时,相对于yOz平面对称 当sx=sy=sz=-1时,相对于原点中心对称。 比例、对称变换矩阵 平移变换矩阵 式中tx、ty、tz 为平移分量
与二维组合变换一样,通过对三维基本变换矩阵的组合,可以实现对三维物体的复杂变换。设坐标P经过n次变换T1,T2,…,Tn到P*,则变换结果为:与二维组合变换一样,通过对三维基本变换矩阵的组合,可以实现对三维物体的复杂变换。设坐标P经过n次变换T1,T2,…,Tn到P*,则变换结果为: P* = PT1T2…Tn = PT 与二维相同,组合变换时,同样需要注意乘法的顺序。 三维组合变换 绕任意轴旋转变换是组合变换,变换过程比较复杂。首先,对物体作平移和绕轴旋转变换,使得所绕之轴与某一根标准坐标轴重合;然后,绕该标准坐标轴作所需角度的旋转;最后,通过逆变换使所绕之轴恢复到原来位置。这个过程须由7个基本变换的级联才能完成。 绕任意轴的旋转变换
y Q P2( x2, y2, z2) P1( x1, y1, z1) Q′ x o z y x o z y c b u o x a z 如右图,设旋转任意轴为p1( x1,y1,z1), p2( x2,y2,z2)两点定义的单位矢量(a,b,c),绕轴旋转角度为。 可用7个步骤实现: 步骤 1:平移T(-x1,-y1,-z1)使p1点与原点重合 变化矩阵为: 步骤2: Rx(),绕X轴旋转 角,使得轴p1p2落入平面xoz内 变化矩阵为: 其中:
y o x v u a z 步骤3: Ry(-β),绕Y轴旋转(-)角,使p1p2与z轴重合; 变化矩阵为: 其中: 步骤4: Rz(θ),绕Z轴(即P1P2 轴) 旋转θ角度 ,其变化矩阵为: 步骤5: Ry(β),作步骤3的逆变换T3-1 ; 步骤6: Rx(-α),作步骤2的逆变换T2-1 ; 步骤7: T(x1,y1,z1) ,作步骤1的逆变换 T1-1 。 其组合变换矩阵为: T = T1 T2 T3 T4 T3-1 T2-1 T1-1
假定一六面体ABCDEFGH各点的坐标分别为(x 1, y 1, z 1),….., (x 8, y 8, z 8),则经过图形变换后的坐标为: 三维形体几何变换示例 式中:T为所要进行的图形变换矩阵
2.3、二维图形显示 坐标系统 2.3.1坐标系统 1)世界坐标系(World Coordinate Systems) 。 2)局部坐标系(Local Coordinate System)。 3)观察坐标系(Viewing coordinate systems) 。 4)成像面坐标系统。 5)屏幕坐标系统,也称设备坐标系统。
2.3、二维图形显示 2.3.1坐标系统 图(a) 在 CG 和 CAD 软件系统中,涉及许多坐标系和坐标变换 方便于物体模型定义的坐标系,又称局部坐标系、或工作坐标系。因为物体模型在某一任意坐标系下定义可能是非常困难,如立方体斜放在某坐标系中(如图a),顶点坐标很难确定;最好将立方体放在某坐标系中使角点重合坐标原点,三条边平行于坐标轴(如图b),通过模型变换再实现其任意位置。 模型坐标系 图(b) 世界坐标系(也有称用户坐标系)是用户用于定义所有物体的统一参考坐标系,它在计算过程中始终保持唯一性,无论物体在何位置,在什么模型坐标系,一般应变换到统一的世界坐标系(即统一的参照坐标系),然后进行其它计算,避免坐标系的混乱,引起不必要的错误。 物体从模型坐标下经几何变换到世界坐标系称模型变换,通过坐标变换实现。 世界坐标系 (WC) 实际中,可以物体不动照相机动 (移动和转动),也可相机不动物体动。通常取物体所在的坐标系为世界坐标系(WC),投影平面与投影中心也在世界坐标系中指定。考虑到在世界坐标系中,要获取某角度物体的投影,所指定的投影平面与投影中心的表示可能很复杂,导致投影变换很复杂。为此,可以依赖于投影平面(为照相机底片)建立一个uvn坐标系,称之为观察坐标系(VRC)。 观察坐标系 (VRC)
2.3、二维图形显示 O’ O WC VRC v z n y u x 2.3.1坐标系统 观察坐标系(续) 观察坐标系(也称视点坐标系,视见坐标系)常采用右手直角坐标系(如图)(也可左手坐标系),这样可使观察坐标系与世界坐标系有相同的方向,图形系统就可以用一种坐标方向来处理世界坐标系和观察坐标系两种系统。 假定有两个坐标系Oxyz 和O’uvn,如上图: 坐标变换 在坐标系Oxyz中,O’的坐标为(O’x, O’y, O’z), O’u、O’v和O’n分别为三个单位矢量(ux,uy,uz)、(vx,vy,vz)和(nx,ny,nz),要将坐标系Oxyz 中的图形变换到坐标系O’uvn中去,称该坐标变换为T xyzuvn,其变换为: [x’y’z’1] = [x y z 1] T 则点的坐标计算: 注:图形变换也可由坐标变换得到,且变换矩阵互逆。 [x’y’z’1] T-1 = [x y z 1]
2.3、二维图形显示 二维图形显示流程 2.3.2二维图形显示流程
2.3、二维图形显示 规范化和视口变换 在实际应用中,通常把在用户坐标系中选定的需要显示图形的区域称为窗口,并能控制在显示屏上显示图形的位置和大小,把在显示坐标系中规定的显示图形区域称为视口。观察变换就是把用户坐标系中选定窗口的图形变换到显示器视口中进行显示。 设用户选定的窗口范围为(wxl,wyl)和(wxr,wyr),视口范围为(vxl,vyl)和(vxr,vyr),将窗口中的图形转为视口中图形的过程为:(1)先平移窗口使其左下角与坐标原点重合;(2)再比例变换使其大小与视口相等;(3)最后再通过平移使其移到视口位置,如下图所示: 由此可得观察变换矩阵为:
2.3、二维图形显示 二维裁减算法 2.3.3二维裁剪算法 直线和窗口的关系可以分为如下三类: (a)整条直线在窗口之内。此时,不需剪裁,显示整条直线。 (b)整条直线在窗口之外,此时,不需剪裁,不显示整条直线。 (c)部分直线在窗口之内,部分在窗口之外。此时,需要求出直线与窗框之交点,并将窗口外的直线部分剪裁掉,显示窗口内的部分。
2.4、三维图形显示 v y z n u x 照相机成像模型 三维图形显示流程 为了解决三维图形显示中投影问题,借助于照相机模型的概念和方法。如右图照相机与景物有各自的坐标系:uvn与xyz。 照相机成像模型 照相机拍照成像过程: 1)取景:相当于实现取景变换 2)拍照到底片:相当于规范化、裁剪与投影 3)冲洗照片: 相当于显示到显示设备 用计算机显示过程描述上述过程: 1)选定投影类型;2)设置投影参数;3)三维裁剪;4)投影;5)显示 三维观察变换所起的作用是完成从用户空间选取的一部分物体描述变换到显示屏上指定的视口中的图形描述,类似于照相机成像模型。从用户的图象描述产生显示器上的图形描述的处理过程如图所示: 三维观察变换
2.4、三维图形显示 v 后裁剪面 v 后裁剪面 投影平面 投影平面 u 前裁剪面 前裁剪面 u n n 透视投影的视见体 平行投影的视见体 1)取景变换和规范化视见体变换 取景变换完成从用户坐标系的描述到观察坐标系的描述的坐标变换,包括: (1)观察平面的确定(即指定观察坐标系) (2)用户坐标到观察坐标的变换 为使剪取处理简单和规范化(单位化),需利用坐标变换将视见体规范化。 2)三维剪取其作用是仅保留在视见体内的物体部分并对它生产图形显示。 3)投影变换将视见体内的三维物体描述变换成投影平面上的二维图形描述。 4)二维观察变换将投影平面矩形窗内的图形变换到显示器(或规范化)坐标中 的视口内。 三维观察变换(续) 视见体:通常人只能看到有限范围的景物。为此在观察坐标系中定义两个裁剪面——前裁剪面与后裁剪面,它们平行于投影平面,位于前后裁剪平面之间的观察空间称为视见体或裁剪空间。
2.4、三维图形显示 4.1 三维图形显示流程 三维图形显示流程 进一步细化上述过程,三维图形的显示流程一般为: 三维显示过程复杂,裁剪效率重要。为减少计算量,引入规范视见体概念 ,这样先将视见体规范化,然后关于规范视见体进行三维裁剪,其流程为:
2.4、三维图形显示 世界坐标系到观察坐标系的变换
2.4、三维图形显示 形体的投影变换 投影变换 将三维图形向二维平面上投影生成二维图形表示的过程称为投影变换。 根据视点的远近,投影分为平行投影和透视投影。当投影中心(观察点)与投影平面之间的距离为无穷远时,为平行投影,否则为透视投影。 投影变换定义 透视投影的图形与眼睛观察景物的原理及效果是一致的,常用于图形的真实效果显示。由于平行投影后直线间的平行关系不变,常用于三维图形交互和生成工程图的视图。 (a)平行投影变换示意图 投影变换分类 (b)透视投影变换示意图
Y’ X’ 首先设投影坐标系为O’X’Y’Z’(如下图,X’周向右,Y’轴向上)。 正交投影 (正投影) 投影方向垂直于投影平面时称为正平行投影,正交投影(也称正投影)是正平行投影的特殊形式,其投影平面相互垂直,常用于生成工程图的三视图 主视图 俯视图 左视图 三视图变换矩阵 注意:推导是相对于投影坐标系O’X’Y’Z’
将三维图形绕其模型坐标系的x轴和y铀分别旋转一定的角度后,再垂直于xOy平面向该平面投影,可获得具有立体感的轴测图。将三维图形绕其模型坐标系的x轴和y铀分别旋转一定的角度后,再垂直于xOy平面向该平面投影,可获得具有立体感的轴测图。 或者,当视点在模型空间的任意位置E(a,b,c)向坐标原点观察时,将图形沿观察方向向垂直于视线的平面投影,也可得到轴测图,a=b=c时为正等测投影。 在应用中常采用输入视点坐标的方式来确定轴测投影的方向,它比绕两轴旋转给定角度的几何意义更明确。 轴测投影 将坐标系作两次旋转变换TRz(90°+α)和TRx(β),其中TRz(90°+α)使视线OE与新坐标系的y' Oz'平面重合,y'轴方向与AO重合,TRx(β)使新坐标系的z '轴指向视点。 正轴测投影
透视投影的视线(投影线)是从视点(观察点)出发,视线是不平行的。不平行于投影平面的视线汇聚的一点称为灭点,在坐标轴上的灭点叫做主灭点。主灭点数和投影平面切割坐标轴的数量相对应。按照主灭点的个数,透视投影可分为一点透视、二点透视和三点透视。 透视投影 一点透视投影 该公式用相似三角形推导即可证明
思考与练习 (1)假设圆心不在原点,编写算法生成整圆,注意使用坐标平移和反射变换。 (2)试推导将平面上任一直线P1(x1,y1)P2(x2,y2)变换成与x轴重合的变换矩阵。 (3)证明 完全表示一个旋转变换。 (4)定义将矩形对象相对于直线y=x+2反射的变换矩阵。二维对象的尺寸为[2,2;3,2;2,3;3,3]。 (5)编写一个Matlab程序或其他类似程序,用来使二维对象绕任意轴旋转、比例变换,并将任意对象平移到任意点。 (6)编写对三维点进行平移、旋转、比例变换的子程序,并设计实例加以验证。 (7)试编写把透视投影裁剪空间规格化和把平行投影裁剪空间规格化的子程序。