资源描述
《计算机图形学》教案:第六章 三维图形变换 14
第六章 三维图形变换
第一节 三维图形变换基础
一、三维坐标系
三维图形学中习惯上通常是采用右手坐标系。
xy平面对应于视平面,z轴垂直于视平面,指向视平面之外。
二、三维齐次坐标及变换矩阵
三维图形变换也是基于矩阵运算进行。矩阵运算的维数被扩展为四维。
三维坐标点采用4元齐次坐标表示:(x, y, z, 1),三维坐标与三维齐次坐标的相互转换如下:
三维坐标(x, y,z)——齐次坐标(x, y,z, 1)
齐次坐标(x, y,z, h)——二维坐标(x/h, y/h,z/h)
变换矩阵则为4X4的矩阵:
其中:
第二节 三维几何变换
一、三维基本变换
1. 平移变换
2. 比例变换
3. 旋转变换
三维的基本旋转变换分为三种,即绕三个坐标轴的旋转变换。
(1)绕z轴旋转角
旋转后z值不变,x,y值将发生改变,x,y值的计算公式与平面旋转相同,即:
则变换矩阵为:
有:
(2)绕x轴旋转角
则旋转后x的坐标值不变,y和z的坐标值将改变,相当于在yz平面上绕平面原点进行旋转变换。
平面转转变换的公式为:
对应而来,这里y对应于x,z对应y,有:
则变换矩阵为:
(3)绕y轴旋转角
这时,z对应于x,x对应于y。因此,变换公式为:
则变换矩阵为:
有:
4. 对称变换
三维对称变换包括三种情况:对原点,对坐标轴,对坐标平面的对称变换。
(1)对原点的对称变换
变换后三个坐标值均取反。
(2)对x轴的对称变换
x坐标值保持不变,y, z值取反。
类似可得对y, z轴的对称变换矩阵。
(3)对xy平面的对称变换
x, y值不变,z值取反。
类似可得对xz平面,yz平面的对称变换矩阵。
二、三维组合变换
组合变换也对应于一个矩阵。
组合变换的矩阵由其所包含的各基本变换的矩阵依次相乘得到。
绕任意轴的旋转变换:
旋转中心轴为A(xA, yA, zA),A’ (x’A, y’A, z’A)两点之间的连线,空间点P(x,y,z)绕AA’轴旋转角到P’(x’,y’,z’)。
要基于平移、绕坐标轴的旋转变换来实现这一边换。
变换的过程为:将旋转轴的端点A移到坐标原点;将AA’旋转到与z轴共线;绕z轴逆时针旋转角;AA’轴反向旋转会原位;将A点反向移回原位。
(1)将A点平移到原点
移动后的情形如下:
为将AA’轴旋转到与z轴共线,需进行两步基本旋转,首先,绕x轴逆时针旋转角,使AA’A”面与zx共面;然后,绕y轴顺时针旋转角。
设:
两角的计算公式如下:
(2)绕x轴旋转角
(3)绕y轴旋转角
(4)绕z轴旋转角
(5)绕y轴旋转角
(6)绕x轴旋转角
(7) 将A点平移到原位
则,组合变换矩阵为:
作业:
写出绕轴(1,2,1)—(7,10,9)旋转45度的组合变换中所包含的7个基本变换矩阵(保留精度为小数点后3位)。
第三节 投影变换
一、问题定义
投影变换就是将三维空间中的图形投影到二维平面上。
一个三维图形可以投影到很多个二维平面,这里首先讨论如何来定义一个投影问题。
这种投影与人眼观察三维世界的过程是一样的,也与照相机拍摄的过程相同。
在观察或摄影中,首先要有一个观察点。
观察点V:人眼或相机所在的位置。
目标点O:被观察处的中心点,人眼聚焦面的中心点。
由此可形成观察方向和投影面。
观察方向:由观察点指向目标点。
投影平面:垂直于观察方向且过目标点的面。
还需确定观察的向上方向,基于目标点,用目标点正上方的一个点来定义。
上方点U:投影后将处于目标点正上方的点。
投影问题由三个参数定义:观察点V,目标点O,上方点U。
二、观察坐标系与世界坐标系
进行三维图形造型的坐标系称为世界坐标系,对投影问题的定义也是基于世界坐标系进行。
由投影问题的三个参数可定义一个观察坐标系,如下:
O点为原点;OV为z轴正方向;U点在xy平面上的投影处于y轴正半轴。
有了观察坐标系后,就可在观察坐标系中来进行投影处理,这时观察的方向就是z轴负方向,投影平面就是xy平面。
但显然不能直接将世界坐标系中的图形拿到观察坐标系中投影,而需要将其图形坐标变换到观察坐标系中。
二、坐标变换
问题:将世界坐标系中的图形变换到观察坐标系统。
等价于:在世界坐标系中,将观察坐标系变换到与世界坐标系重合,各图形坐标同步进行变换。
如下例,观察坐标系平行于世界坐标系,其原点为(6, 2, 0)。
若世界坐标系中图形的某个点为P(0,0,0),则其在观察坐标系中坐标应为(-6, -2, 0)。
在世界坐标系中图形进行变换,使观察坐标系与世界坐标系重合,则需要平移(-6, -2, 0),此时P点的坐标正好就变为(-6, -2, 0)。
下面就讨论该变换问题。
基于定义投影问题的三个点V,O,U进行坐标变换。
变换步骤:
(1)将O点平移到原点;
移动后的情形如下:
下一步将V点变换到z轴上,需用进行两个旋转变换:首先,绕x轴逆时针旋转角,使V点处于zx平面;然后,绕y轴顺时针旋转角。
(2)绕x轴旋转角
(3)绕y轴旋转角
完成这两步之后,再需将U点旋转到yz平面。情形如下:
(4)绕z轴旋转角
通过上述三个变换将U点变为A点,有:
则:
由此,可得坐标变换的矩阵:
将三维图形用该矩阵进行变换后,投影问题即为将图形以z轴为中心投影到xy平面。
投影有两种方式:平行投影,透视投影。
三、平行投影
通过坐标变换后,投影的情况就只有一种,将三维图形投影到xy平面。
投影分为平行投影和透视投影。这里先讨论平行投影。
平行投影又分为正投影和斜投影。这里只讨论正投影。
这里的平行正投影就是将图形平行地垂直投影到xy平面,因此其处理就是将图形上各点的z值置为0。即:
四、透视投影
在平行投影中,远处和近处的物体在投影面上具有相同的大小,这不符合人对物体的观察特性。人观察物体的一个基本特性就是,近处的物体大,远处的物体小。符合这一特性投影即称为透视投影。
被投影的物体即可处于投影平面之前,也可处于之后。透视投影的情景如下图所示。
进行透视投影时,各点的z坐标也将变为0,但不同于平行投影,各点的x,y坐标也将发生变化。设视点V到投影平面的投影距离为d,则x,y坐标的求解方式如下图:
有:
类似,有:
该透视投影变换矩阵记为。用该矩阵对点进行变换后,需要对点的坐标进行归一化处理,使齐次项变为1,然后再取得其坐标值。
例:设投影距离为20,对点(2,8,10)进行透视投影变换。
这是进行了坐标变换后的透视投影变换矩阵。将其与坐标变换矩阵相乘,即得到总的投影变换矩阵:
作业:
(1)设投影距离为30,对观察坐标系中的点(4,10,10),(6,8,-5)进行透视变换。
(2)给定视点V,目标点O,上方点U,写出计算透视投影总变换矩阵的计算公式及计算步骤。
展开阅读全文