第5章 图形变换_第1页
第5章 图形变换_第2页
第5章 图形变换_第3页
第5章 图形变换_第4页
第5章 图形变换_第5页
已阅读5页,还剩193页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章图形变换5.1图形变换基础5.2二维图形变换5.3三维图形变换5.4窗口—视区变换5.5正投影三视图变换5.6轴测投影变换5.7透视投影与视图变换5.8参数图形的几何变换5.9图形变换实例习题

5.1图形变换基础图形变换是指对计算机生成的图形进行变换的技术,它是计算机图形学中较为基础的内容之一。通过图形变换可以从简单图形生成复杂图形;可以从某一个图形得到多个其它图形;可用二维图形表示三维形体;可对静态图形经过快速变换而获得图形的动态显示效果;当图形具有一定的规律性时,还可以使绘图程序简单化。所以,为了提高图形程序的设计效率和质量,开拓图形程序应用范围的新领域,深入学习图形变换是十分必要的。图形变换应用的例子如图5.1所示。目前,较为完善的图形软件中,都包含有图形几何变换的一些功能。图5.1图形变换应用示例5.1.1齐次坐标所谓齐次坐标,就是将一个原本是n维的向量用一个n+1维向量来表示。例如,向量(x1,x2,…,

xn)的齐次坐标表示为(Hx1,Hx2,…,

Hxn,H),其中H是一个不为0的实数。由点或向量的齐次坐标(Hx1,Hx2,…,

Hxn,H)求它的规范化齐次坐标,可根据如下公式求得现设点P(x,y)进行平移后移到P*(x*,y*),其中x方向的平移量为l,y方向的平移量为m。那么,点P*(x*,y*)的坐标为,如图5.2所示。图5.2点的平移图5.3齐次坐标的几何意义引入齐次坐标的主要优点如下:(1)如上所述,齐次坐标提供了用矩阵运算把二维、三维甚至高维空间中的一个点集(图形)从一个坐标空间变换到另一个坐标空间的有效而统一的方法。二维图形齐次坐标变换矩阵的一般形式是(5-2)三维图形齐次坐标变换矩阵的一般形式是(5-3)(2)用齐次坐标可以表示无穷远点。(3)齐次坐标在图形几何变换中的另一个应用是:如某点S(60000,50000)在16位计算机上表示则大于32767的最大坐标值,需要进行复杂的操作。5.1.2坐标系1.世界坐标系(WCS-WorldCoordinateSystem)

世界坐标系一般是三维右手直角坐标系,它的单位根据所描述的实际对象的大小来确定,通常使用实数,取值范围并无限制。它是一般用户绘图时所取的坐标系,有时也称为用户坐标系或物体坐标系。通常表示为图5.4(a),它也可以是二维的,表示为图5.4(b)。图5.4世界坐标系(WCS)(a)3D右手直角坐标系;(b)2D右手直角坐标系2.目坐标系(ECS/VCS-EyeCoordinateSystem)

目坐标系一般是三维左手直角坐标系,通过变换可在用户坐标系的任何位置,任何方向定义。它的单位根据所描述的实际对象的大小来确定,一般使用实数。它是一般用户观察图形对象时所取的坐标系,有时也称为观察坐标系(VCS-ViewCoordinateSystem)。建立目坐标系的主要作用有两个,第一个是用于指定裁剪空间,确定三维立体的哪部分要显示输出;第二个是通过定义观察(投影)平面,把可显示部分的用户坐标变换成规格化的设备坐标。用户坐标与目坐标之间的关系,如图5.5所示。图5.5目坐标系(ECS)图5.6设备坐标系(DCS)3.设备坐标系(DCS-DeviceCoordinateSystem)

为了便于输出真实图形,设备坐标系(DCS)有时也采用左手三维直角坐标系,但它不全都是左手的、三维的。它的单位根据输出设备的实际大小来确定,一般使用整数,如图5.6所示。4.规格化设备坐标系(NDCS-NormalizedDeviceCoordinateSystem)

在早期的图形系统中,图形程序(或软件包)大多是在用户坐标系(WCS)中画图,然后直接映射到设备坐标空间(DCS)显示输出。这就给设备的更换和软件的移植带来不方便。为此,在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中的值,使得图形有了统一的设备空间。这对图形的统一处理,带来很大的方便,从而提高图形程序的可移植性。图5.7规格化设备坐标系(NDCS)以上介绍的坐标系均为三维坐标系,但在显示器屏幕上或绘图机上,则要求用户定义一个平面。较为简单方便的办法是使z坐标值取零。因此在三维直角坐标系中,xOy平面也可以看作是基本工作平面。任何不在xOy平面内的图形可以通过本章介绍的图形变换来处理。

国际图形标准GKS(GraphicsKernelSystem)是图形程序和各种图形输入/输出设备之间的一个标准软件接口。为便于图形程序的使用和对设备的处理,GKS设置了三种坐标系,即世界坐标系(WCS)、规范化设备坐标系(NDCS)和设备坐标系(DCS)。它们之间的转换如图5.8所示。图5.8WCS、ECS、NDCS和DCS间的转换5.2二维图形变换5.2.1二维图形几何变换的矩阵利用齐次坐标以及式(5-2)中的变换矩阵T2D,实现平面图形几何变换的基本变换的一般过程是:将n×2阶的二维点集矩阵[xiyi]n×2表示成齐次坐标[xiyi1]n×2的形式,然后乘以相应的变换矩阵即可完成,即变换后的点集矩阵=变换前的点集矩阵×变换矩阵T

(图形上各点的新齐次坐标)(图形上各点的原齐次坐标)设变换矩阵T为式(5-2)中的T2D,则上述变换可以用公式表示为(5-4)图形上各点的新齐次坐标规范化后的点集矩阵为1.二维图形变换子矩阵的功能引入齐次坐标后,表示平面图形几何变换的3×3矩阵T2D的功能就完善了,我们可以用它完成二维图形的各种基本几何变换。下面我们讨论式(5-2)表示的3×3变换矩阵T2D中各元素在变换中的功能。T2D的一般形式为2.图形几何变换的性质在式(5-2)或式(5-5)的3×3矩阵T2D中,除p≠0,q≠0(透视变换)外,其余各变换具有以下性质:(1)从属性:变换前在直线或图形上的点,变换后在直线或图形上有确定的对应点,且其从属关系不变。(2)同素性:变换前后,几何要素(点或直线)不变。(3)平行性:互相平行的直线(段),变换后仍保待平行。(4)等比性:变换前两线段之比等于变换后对应线段之比。5.2.2二维图形的基本几何变换下面介绍二维图形的各种基本几何变换。1.恒等变换平面图形的恒等变换保持原图形的大小、形状、位置不变,其变换矩阵为2.比例变换平面图形的比例变换是将图形放大、缩小(压缩),如图5.9所示。比例变换的矩阵为其中,a,d>0。图5.9比例变换图5.102D图形的比例变换(a)三角形等比例变换;(b)三角形畸变(1)将已知三角形放大为原来的两倍。此时,只要选择a=d=2,变换矩阵为则(2)如果选择a=2,d=3,变换矩阵为则3.反射变换平面图形的反射变换是指变换前后的平面图形对称于x轴,y轴或某个特定轴。反射变换的矩阵为(1)如果要把图5.10(a)中所示的三角形P1P2P3相对于x轴作反射变换,只要在上述变换矩阵T2D中选择a=1,d=-1,则(2)同样,要把图5.10(a)中所示的三角形P1P2P3相对于y轴作反射变换,只要在上述变换矩阵T2D中选择a=-1,d=1,则(3)如图5.11(c)所示,只要在上述变换矩阵T2D中选择a=-1,d=-1,便可对三角形P1P2P3作关于原点的反射变换,变换后的三角形为P*1P*2P*3。图5.112D图形的反射变换(a)三角形对称于x轴;(b)三角形对称于y轴;(c)三角形对称于坐标原点4.错切变换平面图形的错切变换是指变换前后的平面图形沿x轴方向或y轴方向错切。错切变换的变换矩阵为(1)如果取a=d=1,b=0,c为正数或负数,则由公式(5-4)可知,变换后点的y坐标不变,而变换后的横坐标x*=x+cy,即x*是在原横坐标x上加上cy,也就是沿+x方向或-x方向移动cy,如图5.12(a)所示。点(0,0)在错切变换中保持不变,c是一个常数,所以

,即表示平行于y轴的直线段错切后相对于y轴的倾斜θ角度。当θ=45°时,c=1,如果此时对图5.12(b)所示的矩形P1P2P3P4进行错切变换,则(2)如果取a=d=1,c=0,b为正数或负数,令b=1,对图5.12(c)所示的矩形P1P2P3P4进行错切变换,则图5.122D图形的错切变换示意图(a)错切角;(b)沿x方向错切;(c)沿y方向错切(3)如果取a=d=1,b,c为正数或负数,令b=2,c=1,对图5.13所示的矩形P1P2P3P4进行错切变换,则图5.13x、y方向同时错切的变换5.旋转变换平面图形的基本旋转变换是指图形绕坐标原点旋转任意角θ,并且规定逆时针方向旋转时,θ取正值,顺时针方向旋转时,θ取负值,如图5.14(a)所示。图5.142D图形的旋转变换示意图(a)点的旋转;(b)三角形的旋转图5.15三角形的平移变换示意图6.平移变换平面图形的平移变换是将平面图形从一个位置平移到另一位置,形状没有任何改变。平移变换的矩阵就是式(5-1)中的矩阵T。下面是平移变换的一个例子。如图5.15所示,设△P1P2P3的三个顶点分别为

P1(15,30),P2(60,30),P3(30,60),平移量为l=20,m=50。

5.2.3平面图形的复合变换(级联变换)1.复合平移给定某个平面图形,先平移(l1,m1)到新的位置后,再将所得图形平移(l2,m2)到下一位置,则这个复合平移的矩阵为2.复合比例对某个给定的平面图形连续进行比例变换,最后合成的复合比例矩阵,只要对比例常量作乘法运算即可,复合比例变换矩阵如下:3.复合旋转对某个平面图形连续两次施行旋转变换,最后合成的旋转变换的旋转角度等于两次旋转角度的和,复合旋转变换矩阵如下:5.2.4平面图形变换举例设△P1P2P3的三个顶点分别为P1(10,20),P2(20,20),P3(15,30),它绕点Q(5,25)逆时针方向旋转30°,它的复合变换由如下三种变换组成:(1)先将给定点Q(5,25)及△P1P2P3一起移动,Q移到原点O,平移常量l=-5,m=-25,△P1P2P3也跟着平移到新位置P′1P′2P′3,平移变换矩阵为(2)再将△P′1P′2P′3绕原点逆时针旋转30°,旋转变换矩阵为旋转变换后的△P″1P″2P″3如图5.16(b)所示。(3)最后将Q点移回原来位置Q(5,25),△P″1P″2P″3也平移l=5,m=25,平移变换矩阵为变换后,△P*1P*2P*3如图5.16(b)所示。图5.16三角形的复合变换示意图(a)先平移;(b)旋转后再平移5.3三维图形变换三维空间立体图形的基本变换与二维平面图形的基本变换,在几何概念上十分相似,同样可以利用矩阵处理方法。通常用规范化的四维齐次坐标(x,y,z,1)来表示三维空间点(x,y,z)。因此,三维空间点的变换的一般公式为[x*y*z*1]=[x

y

z1]·T3D(5-7)式中,T3D是式(5-3)中的三维图形的变换矩阵,它是一个4×4阶方阵,即(5-8)

5.3.1三维平移变换平移变换是指三维立体沿x、y、z三个方向分别移动l,m,n到一个新的空间位置。平移变换后,立体的大小和形状保持不变。三维平移变换的矩阵为图5.17三棱锥的平移变换示意图5.3.2三维比例变换1.比例变换比例变换是指三维立体在x、y、z三个方向以原点为中心,分别放大或缩小a,e,i倍,得到一个新的三维立体。比例变换后,三维立体的大小和形状可能发生改变。比例变换的变换矩阵为其中主对角线上的元素a,e,i,使三维立体以原点为中心,沿x、y、z三个方向进行放大或缩小。当a=e=i时,三维立体在三个方向以相等比例放大或缩小。图5.18正方体的等比例变换示意图图5.19三棱锥的不等比例变换示意图2.全比例变换在式(5-8)中,变换矩阵主对角线上的元素s能使三维立体在空间各方向等比例放大或缩小。全比例变换矩阵为5.3.3三维反射变换1.对xOy坐标平面的反射变换把给定图形对于xOy坐标平面作反射变换时,变换前后相应点的x、y坐标保持不变,z坐标互为相反数,所以仅需将单位矩阵中z坐标的元素值取为-1。因此,反射变换的矩阵为图5.20反射变换示意图(a)对xOy面的反射;(b)对yOz面的反射;(c)对xOz面的反射2.对yOz坐标平面的反射把给定图形对于yOz坐标平面作反射变换时,仅需将单位矩阵中x坐标的元素值取为-1,因此,反射变换矩阵为3.对xOz坐标平面的反射把给定图形对于xOz坐标平面作反射变换时,仅需将单位矩阵中y坐标的元素值取为-1,因此,反射变换矩阵为

5.3.4三维错切变换三维错切变换是指三维立体在空间沿x、y、z三个方向实现错切变形,三维错切是二维错切变换的一个扩充。三维错切变换矩阵为图5.21错切变换示意图5.3.5三维旋转变换三维立体的旋转变换是指给定的三维立体绕三维空间某个指定的坐标轴旋转θ角度。旋转后,立体的空间位置将发生变化,但形状不变。

θ角的正负按右手规则确定,右手大姆指指向旋转轴的正向,其余四个手指指向旋转角的正向,如图5.22(a)所示。下面主要讨论三维立体分别绕三个坐标轴旋转的旋转变换,如图5.22所示。图5.22旋转变换示意图(a)绕z轴正向旋转;(b)绕x轴正旋转;(c)绕y轴正向旋转1.绕x轴正向旋转角θx

三维空间立体绕x轴旋转时,立体上各顶点的y,z坐标改变,而x坐标不变,因此,变换矩阵在第一行和第一列中,除去主对角线上元素为1以外,所有元素均为0,而y,z坐标可由二维点绕原点旋转公式(5-6)得到,因此可得x*=xy*=ycosθx-zsinθxz*=ysinθx

+z

cosθx将上式改写成矩阵形式,则绕x轴旋转的旋转变换矩阵为(5-9)

2.绕y轴正向旋转角θy

三维空间立体绕y轴正向旋转时,立体上各顶点的x,z坐标改变,而y坐标不变,因此,变换矩阵在第二行和第二列中,除去主对角线上元素为1以外,所有元素均为0,而x,z坐标可由二维点绕原点旋转公式(5-6)得到,因此可得

x*=x

cosθy

+zsinθyy*=yz*=-xsinθy+z

cosθy

将上式改写成矩阵形式,则绕y轴旋转的旋转变换矩阵为3.绕z轴正向旋转角θz

三维空间立体绕z轴正向旋转时,立体上各顶点的x,y坐标改变,而z坐标不变,因此,变换矩阵在第三行和第三列中,除去主对角线上元素为1以外,所有元素均为0,而x,y坐标可由二维点绕原点旋转公式(5-6)得到,因此可得

x*=x

cosθz

-ysinθzy*=xsinθz

+y

cosθzz*=z将上式改写成矩阵形式,则绕z轴旋转的旋转变换矩阵为(5-11)

4.三维旋转举例如图5.23所示,设三棱柱ABCDEF的各顶点为A(0,0,0),B(20,0,0),C(0,10,0),D(0,0,10),E(20,0,10),F(0,10,10),试求三棱柱ABCDEF绕x,y,z各轴正向旋转90°后各顶点的新坐标。图5.23旋转变换5.3.6三维复合变换与二维图形的复合变换一样,三维立体图形也可通过三维基本变换矩阵,按一定顺序依次相乘而得到一个组合矩阵(称级联),完成复合变换。同样,三维复合平移、复合旋转和复合比例变换与二维复合平移、复合旋转和复合比例变换具有类似的规律,请读者自己推导有关结果。下面通过一个例子说明三维复合变换。设给定如图5.21所示的三棱锥ABCD,它的点集矩阵为图5.24三棱锥的复合变换5.3.7三维图形变换程序实例在5.3.5节三维旋转变换中,曾经给出将各顶点为A(0,0,0),B(20,0,0),C(0,10,0),D(0,0,10),E(20,0,10),F(0,10,10)的三棱柱ABCDEF,绕x,y,z各轴正向旋转90°后,求各顶点的新坐标的一个例子,如图5.23所示。图5.25三棱锥的各种变换示例5.4窗口—视区变换5.4.1基本概念在第3章的引言以及3.5节中,我们曾经提到窗口和视区的概念。通常所说的窗口是指在Windows操作系统中,由应用软件设置的一个虚拟区域,它可以被激活、变为无效、在屏幕上移动和改变大小等。在计算机图形学中,把在用户坐标系中需要进行观察和处理的一个坐标区域称为窗口,如图5.26所示。格化设备坐标系(NDCS)来方便计算,如图5.28所示。图5.26窗口与视区示意图图5.27边与坐标轴不平行的窗口及其视区示意图图5.28ECS或VCS中的窗口和NDCS中的视区示意图5.4.2窗口—视区变换1.窗口-视区变换公式如图5.29所示,设在用户坐标系中,取窗口为边与坐标轴平行的矩形,它的左下顶点和右上顶点坐标分别为(Wxl,Wyb)、(Wxr,Wyt),度量单位由用户定义,相应的视区也取成边与坐标轴平行的矩形,它的左下顶点和右上顶点坐标分别为(Vxl,Vyb)、(Vxr,Vyt),度量单位为像素单位。图5.29窗口-视区变换示意图窗口-视区变换的要求在保持一定比例关系的前提下,把窗口中的点(xW,yW)变换为视区中的点(xV,yV)。更确切地说,在窗口中点(xW,yW)到左边线的距离和窗口在x方向的长度之比,与在视区中相应点(xV,yV)到左边线的距离和视区在x方向的长度之比,应该是相等的。同样,在y方向也保持这种比例关系。即化简后得变换公式(5-12)如果窗口边长用Sx,

Sy表示,视区边长用Vx,

Vy表示,则公式(5-12)表示为(5-14)图5.30图形窗口与屏幕视区的对应关系2.开窗变换的选择开窗变换是指先将图形关于窗口进行裁剪,然后将裁剪后的保留在窗口内的图形,变换成显示器屏幕上指定视区内的图形。开窗变换也叫取景变换,它包括裁剪运算和窗口到视区的变换。由于窗口的选取位置和大小不同,开窗变换后,可在视区内显示出不同部位和不同大小的图形。如图5.31(a)所示,以汽车的不同位置、选取两个不同的窗口(窗口1和窗口2)。开窗变换后产生相应的显示图形,如图5.31(b)、(c)所示。应当指出,对于窗口(或视区)的大小以及长宽比例,用户都可以分别改变,从而在视区内产生放大、缩小或畸变的显示图形,以满足各种作图的需要。此外,还可以在用户坐标系中选取斜置窗口,使显示图形得到旋转。根据所选取窗口的不同,将出现以下几种情况。

图5.31开窗变换(1)窗口与视区的形状相似,即二者的长与宽之比相同,变换后在视区产生均匀缩小或均匀放大的图形。如图5.32所示。(2)窗口与视区的形状不相似,即二者的长与宽之比不相等,变换后在视区产生畸变的图形。图形将沿水平及垂直方向以不同比例发生变化——畸变。如图5.33所示。(3)窗口斜置,即窗口绕坐标原点旋转一个角度,变换后视区的图形也相应地旋转一个角度。如图5.34所示。图5.32窗口与视区形状相似图5.33窗口与视区形状不相似图5.34窗口斜置5.4.3窗口-规格化设备坐标-视区变换考虑到输出设备的分辨率,对不同型号和规格的图形显示器或绘图机,其分辨率是不一样的。因此,进行窗口-视区变换时应尽可能得使图形程序设计与设备无关,将视区设置在规格化设备坐标系中。规格化设备坐标系的坐标原点在它的左下角,它的x与y坐标度量分别在0~1的范围。如图5.35所示。图5.35窗口-规格化设备坐标-视区变换用户设计的图形,它的窗口内的全部点坐标首先变换到规格化设备坐标系上,它能适应任何一种具体的图形输出设备。此时,由于Vx=Vy=1,

Vxl=Vyb=0,变换公式(5-13)表示如下:(5-15)然后,根据物理输出设备坐标或具体显示器屏幕尺寸和分辨率,再将规格化设备坐标变换到具体视区内,显示输出图形。在全屏显示情况下,视区原点与屏坐标系原点重合,视区边长即屏幕的宽与高,且设屏幕的显示分辨率为1024×1024像素单位时,则显示点坐标为(5-16)

5.4.4窗口到视区的变换过程引入观察坐标系和规格化设备坐标系后,窗口到视区的变换分为如图5.36所示的几个步骤,通常称为二维观察流程。图5.36窗口—规格化设备坐标—视区变换流程5.5正投影三视图变换5.5.1投影变换及其分类由于显示器和绘图机只能用二维空间来表示图形,因此要显示三维图形就要用投影的方法来降低其维数。把三维物体变为二维图形表示的过程称为投影变换。根据投影中心与投影平面之间距离的不同,投影可分为平行投影和透视投影。平行投影的投影中心与投影平面之间的距离为无穷大,而对透视投影,这个距离是有限的。不同投影的情况如图5.37所示。图5.37投影变换分类(a)平行投影;(b)透视投影投影变换的分类如下:5.5.2三视图变换1.正面(V面)投影的主视图变换及其矩阵正面投影是将三维立体向xOz平面(V面)作垂直投影,立体上的各点的y坐标为零(y=0),如图5.38(a)所示。因此,变换矩阵的第二列元素均为零,此时,V面投影的主视图变换矩阵为(5-17)图5.38正投影三视图变换(a)三面投影;(b)三面投影展开;(c)三面投影平移2.水平面(H面)投影的俯视图变换及其矩阵水平面投影是将立体向xOy平面(H面)作垂直投影,立体上各点的z坐标为零(z=0),因此,变换矩阵第三列元素均为零,即3.侧面(W面)投影的左视图变换及其矩阵侧面投影是将立体向yOz平面(W面),作垂直投影,立体上各顶点的x坐标为零(x=0),因此,变换矩阵的第一列元素均取为零,即5.5.3三视图变换的实例设六面体各顶点的坐标位置为A(0,2,0),B(2,2,0),C(2,0,0),D(0,0,0),E(0,2,2),F(2,2,2),G(2,0,2),H(0,0,2),如图5.39(a)所示。在V面投影图与H面以及W面投影间的距离均为10。试求六面体各顶点在V、H、W面上的投影坐标。

图5.39六面体的三视图(a)原六面体;(b)六面体的三视图1.V面投影的主视图变换矩阵为TV,变换结果为2.H面投影的俯视图变换矩阵为TH,变换结果为3.W面投影的左视图变换矩阵为TW,变换结果为5.6轴测投影变换5.6.1正轴测投影下面先介绍工程制图中得到正轴测投影图的投影过程。对图5.40所示的立方体,若直接向V面投影就得到图5.40(a),若将立方体绕z轴正向旋转一个角度,再向V面投影,就得到图5.40(b),若将其再绕x轴反向旋转一个角度,然后再向V面投影就可得到图5.40(c),这个平面图形就是正轴测投影图。图5.40正轴测投影图的生成(a)V面投影;(b)旋转后的V面投影;(c)正轴测投影图5.41六面体正等测投影图5.6.2斜轴测投影常用的斜轴测投影过程是先将三维立体沿x轴正向错切,如5.42(a)所示,即离开y轴且沿x方向移动dy;然后再沿z轴反向错切,如图5.42(b)所示,即错切平面离开y轴,且沿z轴反向移动fy;最后向xOz平面(V面)垂直投影。因此,斜轴测投影变换矩阵,由上述三种变换的变换矩阵按顺序相乘而得,即(5-22)

图5.42斜轴测投影中的错切变换图5.43六面体的斜二测投影(a)原六面体;(b)六面体的斜二测投影5.7透视投影与视图变换5.7.1透视投影在大量的计算机图形学应用中,需要加以处理的往往是三维空间的立体对象,即三维立体。为了对三维对象作透视投影,先要在三维空间给定一个投影平面和一个视点。从视点发出的所有通过对象的射线和投影平面的交点形成了对象的透视投影。图5.37(b)是一个透视投影的例子。一般地,以某个观察点(视点)为投影中心,将称为“景”的三维立体投影于垂直于观察方向的投影平面内,产生三维立体的“像”,这就是透视投影,如图5.44所示。图5.44透视投影图5.45透视投影的分类(a)一点透视;(b)二点透视;(c)三点透视下面讨论一点透视。一点透视只有一个主灭点,即投影面与一个坐标轴正交,与另外两个坐标轴平行,如图5.45(a)所示。进行一点透视投影变换,要很好地考虑图面布局,以避免三维形体或对象的平面域〈或直线〉积聚成直线〈或点〉而影响直观性。具体的说,就是要考虑下列几点:(1)三维形体或对象与画面(投影面)的相对位置。(2)视距,即视点(投影中心)与画面的距离。(3)视点的高度。由此,我们假设视点(投影中心)在坐标原点,z坐标轴方向与观察方向重合一致,三维形体或对象上某一点为P(x,y,z),一点透视变换后在投影面(观察平面)UO*V上的对应点为P*(x*,y*,z*),投影面与z轴垂直,且与视点的距离为d,z轴过投影面窗口的中心,窗口是边长为2S的正方形,如图5.46所示。图5.46一点透视投影根据相似三角形对应边成比例的关系,有于是(5-24)利用齐次坐标,与三维几何变换类似,将该过程写成变换矩阵形式为事实上,把公式(5-25)的结果进行齐次坐标的规范化后得:这与公式(5-24)的结果相一致。所以,式(5-25)就是一点透视的变换。5.7.2视图变换引入目坐标和规格化设备坐标后,把世界坐标(用户坐标)中三维物体上点的坐标变换为设备坐标系里视区内的像素的变换,称为视图变换。视图变换包括顺次进行的观察变换、裁剪坐标变换、透视变换和视区变换等四个变换,即视图变换是由观察变换、裁剪坐标变换、透视变换和视区变换依次构成的复合变换,如图5.47所示。其中观察方向由a,b,c

三个方向数决定。图5.47视图变换示意图图5.48观察变换与透视变换1.观察变换观察变换就是将世界坐标系定义的三维立体,通过平移、旋转等复合变换,变换到目坐标系,即在目坐标里描述三维立体。用齐次坐标来表示观察变换,其表达式为[xe

ye

ze

1]=[x

y

z1]·Te

(5-26)

图5.49观察变换2.透视变换从坐标变换角度来说,透视变换就是将三维立体各点在目坐标系中的坐标,变换到观察平面(或称透视投影平面)中去的过程。在5.7.1节中已说明过,在透视变换中,一般把观察平面坐标系的原点设在观察平面的窗口的中心,并假定目坐标系的ze轴通过该中心且垂直于观察平面(如图5.48、图5.50所示),如果把观察平面设置在距离视点E为D处,此时三维立体中某一点Pe(xe,ye,

ze),它在观察平面上的透视投影为点P*(u,v,d)(此时d=D),它由观察平面上的(u,v)值来确定。由图5.48中的两相似三角形的几何关系可得因此(5-28)图5.50观察锥如果以窗口半长S除式(5-28),得(5-29)3.视区变换通过透视变换在观察平面的单位窗口(即边长为1的窗口)中得到的投影点PN(u*,v*),是一种规格化设备坐标,要将像点PN(u*,v*)变换到具体的显示器的视区内,从而产生一个显示像素时,还必须进行由规格化设备坐标到物理设备坐标的变换,即变换到屏幕坐标系,这一变换的效果相当于将单位窗口内的像映射为显示屏幕视区内的图形,如前所述,通常称这种变换为视区变换。

设显示器的屏幕坐标系及视区位置关系如图5.51所示。图5.51屏幕坐标系及视区位置关系4.小结综上所述,为了产生三维物体的透视线架图,首先要根据视点在用户坐标系中的位置和观察方向建立目坐标系,并对三维物体上的点通过观察变换用目坐标系表示,然后按已定义的比值D/S所规定的观察范围进行裁剪坐标变换,剪去舍弃部分,保留的三维物体上的点,通过透视投影,使在观察平面上产生相应的像点,然后根据绘图机和显示器的设备坐标及指定显示区域,将这些像点转换为屏幕坐标系上的显示像素,并在相应像素之间画线连接,便生成三维物体的透视线架图,整个变换过程,可用三维物体输出流水线图5.52表示出来。图5.52三维物体输出流水线图5.7.3视图变换举例例如图5.53(a)所示,从物体坐标空间一视点E(6,8,7.5)观察六面体ABCDEFGH,观察方向指向坐标原点,试按视图变换求该六面体ABCDEFGH在显示器屏幕视区中产生的透视线架图(不要求编程,但要根据计算结果画出所生成的透视线架图)。图5.53六面体及其透视线架图(a)六面体;(b)六面体的透视线架图已知D/S=2,Vcx=320,

Vcy=100,

Vsx=319,

Vsy=99(光栅单位)。设物体的点集矩阵为表5.1六面体各顶点的裁剪坐标值

表5.2光栅单位表示的各点屏幕坐标5.8参数图形的几何变换5.8.1圆锥曲线的几何变换设圆锥曲线的二次方程是Ax2+Bxy+Cy2+Dx+Ey+F=0,其相应的矩阵表达式是简记为XSXT=0。1.平移变换若对圆锥曲线进行平移变换,平移矩阵是则平移后的圆锥曲线矩阵方程是XTtSTTtXT=0。2.旋转变换若对圆锥曲线相对坐标原点作旋转变换,旋转变换矩阵是则旋转后的圆锥曲线矩阵方程是XTrSTTrXT=0。3.比例变换若对圆锥曲线相对(m,n)点作比例变换,则比例变换矩阵为则变换后圆锥曲线的矩阵方程是

XTtTsT-1tS(T-1t)TTTsTtXT=05.8.2参数曲线、曲面的几何变换1.平移变换若指定一个平移矢量t,对曲线平移t,即对曲线上的每一点P都平移t。平移后的点P*满足

P*=P+t

对于参数曲线和曲面的几何系数矩阵B和代数系数矩阵A,可以直接实现平移变换,即有

A*=A+MT,B*=B+T,T=[t

t

00]T

B*是经过平移后参数曲线的几何系数矩阵,变换结果如图5.54所示。因为双三次曲面片的系数矩阵是4×4的,故其平移变换矩阵为图5.54几何系数矩阵变换结果图2.旋转变换形体的旋转变换,有绕坐标轴的旋转,或绕空间任意一条直线为轴的旋转等多种形式。若令Rθ表示绕x轴旋转θ角,Rβ表示绕y轴旋转β角,Rγ表示绕z轴旋转γ角,则点P分别绕x、y、z轴旋转θ、β、γ角的变换公式分别是此时,对于参数曲线或曲面的代数系数矩阵和几何系数矩阵的变换公式是

A*=A·R,B*=B·R点P依次绕x、y、z轴旋转θ、β、γ角的变换公式是3.比例变换若设比例系数为s,对参数曲线作变比例变换,只要对几何系数矩阵B作变比例变换即可,也就是

B*=sB

或者B*=[sP0

sP1

sPu0

sPu1]T

图5.55中定义的曲线P(μ)和P*(μ)是相似的,它们相对原点作了变比例变换。图5.56所示参数曲线对Q点作变比例变换的情况,其变换表达式是

B*=sB+Ts

其中Ts=[-Q(s-1)

-Q(s-1)

0

0]T图5.55参数曲线相对于原点的比例变换图5.56参数曲线相对于空间一点Q的比例变换4.反射变换反射变换可用下式表示:

B*=B·Rf

其中(1)对x=0、y=0、z=0的平面分别作反射变换,则Rf分别为(2)对x轴、y轴、z轴分别作反射变换,则Rf分别为(3)对坐标原点作反射变换,则图5.57表示对在xOy平面上的曲线作反射变换的例子,图5.58(a)表示一条参数曲线对空间任一点Q作反射变换的情况,其中

P*=P+2(Q-P),P*u=-Pu

对应的几何系数矩阵B*为

B*=[2Q-P02Q-P1-Pu0

-Pu1]图5.57已知参数曲线在xOy平面上作各种反射变换图5.58参数曲线对空间一点作反射变换图5.58(b)表示一条参数曲线对任一点Q作反射放大变换的情况,放大系数为m,其几何系数矩阵表达式是

B*=[mQ-(m-1)P0

mQ-(m-1)P1-mPu0-mPu1]T5.9图形变换实例

编写一个绘制如图5.59所示的房屋的透视线架图的VC++程序。图5.59给定的房屋已知房屋各顶点在用户坐标系中的点集矩阵PS为了从不同观察方向透视(观察)它,使用球面坐标E(r,θ,φ)表示视点E(e1,e2,e3)。直角坐标系与球面坐标系之间的关系如下:e1=rcosθsinφe2=r

sinθsinφe3=r

cosφ(5-43)其中图5.60视图变换后房屋的透视线架图习题1.己知四边形ABCD各顶点的坐标为A(0,0)、B(20,0),C(20,15),D(0,15),试求:(1)x方向缩小一半,y方向增长1倍后的坐标;(2)将ABCD比例放大原

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论