跨入计算机殿堂的入门篇计算机图形学施智平shizhiping@gmail.com第六章三维图形基本几何变换矩阵平行投影透视投影三维基本几何三维基本几何变换矩阵三维复合变换投影变换透视变换本章小结习题三维基本几何变换三维变换矩阵三维几何变换二维变换abcd对图形作缩放、旋转、对称、错切变换lm对图形作平移变换qp对图形作投影变换s对图形作整体变换acl对x’起作用,bdm对y’起作用,qps对整体起作用。smlpdcqbayxyx11''6三维齐次坐标三维坐标,右手坐标系旋转轴正的旋转方向xy-zyz-xzx-y三维齐次坐标(x,y,z)点对应的齐次坐标为标准齐次坐标(x,y,z,1)7),,,(hzyxhhh0,,,hhzzhyyhxxhhhxyz三维变换矩阵三维几何变换三维几何变换是二维几何变换的推广三维几何变换在齐次坐标空间中可以用4×4的变换矩阵表示变换矩阵:8snmlrjihqfedpcba三维基本几何变换三维基本几何变换都是相对于坐标原点和坐标轴进行的几何变换假设三维形体变换前一点为p(x,y,z),变换后为p'(x',y',z')。9snmlrjihqfedpcbazyxTpzyxpD11''''3其中对图形进行比例、旋转、反射和错切变换。对图形进行平移变换。对图形进行投影变换。对图形进行整体比例变换。三维几何变换对于线框模型的变换,通常是以点变换为基础三维几何变换的基本方法是把变换矩阵作为一个算子,作用到变换前的图形顶点集合的坐标矩阵上,得到变换后新的图形顶点集合的坐标矩阵连接变换后的新的图形顶点,可以绘制出变换后的三维图形。111222111nnnzyxzyxzyxP111''''2'2'2'1'1'1'nnnzyxzyxzyxP设图形变换前的顶点集合的规范化齐次坐标矩阵为:变换后的顶点集合的规范化齐次坐标矩阵为:snmlrihgqfedpcbaTTPP'snmlrihgqfedpcbazyxzyxzyxzyxzyxzyxnnnnnn111111222111''''2'2'2'1'1'1变换矩阵为:则三维图形基本几何变换有即:三维基本几何变换矩阵平移变换比例变换旋转变换反射变换错切变换平移变换zyxTzzTyyTxx'''1010000100001zyxTTTT平移变换的坐标表示为:因此,三维平移变换矩阵为:Tx,Ty,Tz是平移参数。zyxzSzySyxSx'''1000000000000zyxSSST比例变换的坐标表示为:因此,三维比例变换矩阵为:这里Sx,Sy,Sz是比例系数比例变换旋转变换三维旋转一般看作是二维旋转变换的组合可以分为:绕x轴的旋转,绕y轴的旋转,绕z轴的旋转。转角的正向满足右手定则:大拇指指向旋转轴,四指的转向为正向。''cossin'sincosxxyyzzyz10000cossin00sincos00001T绕x轴旋转变换的坐标表示为:1.绕x轴旋转zyxzyx绕x轴旋转'sincos''cossinxzxyyzzxcos0sin00100sin0cos00001T同理可得,绕y轴旋转变换:2.绕y轴旋转zyxzyx绕y轴旋转'cossin'sincos'xxyyxyzzcossin00sincos0000100001T绕z轴旋转变换表示为:3.绕z轴旋转zyxzyx绕z轴旋转zzyyxx'''1000010000100001T三维反射分为两类:关于坐标轴的反射关于坐标平面的反射反射变换变换矩阵为:1.关于x轴的反射坐标表示为:zzyyxx'''1000010000100001T变换的坐标表示为:变换矩阵为:2.关于y轴的反射zzyyxx'''1000010000100001T变换的坐标表示为:变换矩阵为:3.关于z轴的反射'''xxyyzz1000010000100001T变换的坐标表示为:变换矩阵为:4.关于xoy面的反射zzyyxx'''1000010000100001T坐标表示为:变换矩阵为:5.关于yoz面的反射zzyyxx'''1000010000100001T坐标表示为:变换矩阵为:6.关于zox面的反射fycxzzhzbxyygzdyxx'''1000010101hgfdcbT三维错切变换的坐标表示为:因此,三维错切变换矩阵为:错切变换三维错切变换中,一个坐标的变化受另外两个坐标变化的影响。如果变换矩阵第一列中元素d和g不为0,产生沿x轴方向的错切;第二列中元素b和h不为0,产生沿y轴方向的错切第三列中元素c和f不为0,产生沿z轴方向的错切错切变换1000010101hgfdcbTb=0,h=0,c=0,f=010000100010001gdTd=0时,错切平面离开z轴,沿x方向移动gz距离;g=0时,错切平面离开y轴,沿x方向移动dy距离。1.沿x方向错切zzyygzdyxx'''zyxzyxd=0,g=0,c=0,f=0。b=0时,错切平面离开z轴,沿y方向移动hz距离;h=0时,错切平面离开x轴,沿y方向移动bx距离。2.沿y方向错切zzhzbxyyxx'''zyxzyxd=0,g=0,b=0,h=010000100010001fcTc=0时,错切平面离开y轴,沿z方向移动fy距离;f=0时,错切平面离开x轴,沿z方向移动cx距离。3.沿z方向错切fycxzzyyxx'''zyxzyx三维复合变换32三维复合变换基本几何变换是相对于坐标原点和坐标轴进行的几何变换相对于任意点和任意方向的几何变换通过三维复合变换来实现对三维图形按顺序进行多个基本变换,即可完成三维复合变换,复合变换矩阵是每一步变换矩阵相乘的结果33三维复合变换例子:使三维图形绕J轴旋转θ角思路:将J轴重合Z轴之后,使立体旋转θ角,然后返回34xzyJ步骤:1。J轴绕Z轴转φ角至yoz平面,成为J1。2。J1轴绕X轴转γ角后与z轴平行,成为J2。3。立体绕J2轴转θ角4。从J2返回J1。5。从J1返回J。35zyxJ1J2zyxJ1J2zyxJ1J三维复合变换投影变换36投影变换显示器只能用二维图形表示三维物体,因此三维物体就要靠投影来降低维数得到二维平面图形把三维物体转变为二维图形的过程称为投影变换SSS(a)透视投影(b)正投影(c)斜投影38投影变换可分为两大类:透视投影的投影中心到投影面之间的距离是有限的;平行投影的投影中心到投影面之间的距离是无限的;平行投影的最大特点是无论物体距离视点多远,投影后的物体尺寸保持不变。平行投影可分成两类:正投影和斜投影。投影变换三视图三视图三视图是正投影视图包括主视图、俯视图和侧视图投影面分别与y轴、z轴和x轴垂直将三维物体分别对正面、水平面和侧平面做正投影得到三个基本视图yzx0yzy0x主视图俯视图侧视图正三棱柱的立体图正三棱柱的三视图三视图主视图的形成:直接向V面(XOZ坐标面)投影;俯视图的形成:绕X轴向下旋转90度,平移N距离;左视图的形成:绕Z轴向后旋转90度,平移L距离。xZYx轴Z轴Y10000100000000011101'''zyxzxzyx1000010000000001xozVTT将三棱柱向xoz面作平行投影,得到主视图。设三棱柱上任一点坐标用P(x,y,z)表示它在xoz面上投影后坐标为P’(x’,y’,z’)坐标关系x’=x,y’=0,z’=z主视图投影变换矩阵为:(1)主视图10000000001000011101'''zyxyxzyx1000000000100001xoyT将三棱柱向xoy面作平行投影得到俯视图。设三维物体上任一点坐标用P(x,y,z)表示它在xoy面上投影后坐标为P’(x’,y’,z’)其中x’=x,y’=y,z’=0。xoy面投影变换矩阵为:⑵俯视图为了使俯视图和主视图在一个平面内,使xoy面绕x轴顺时针旋转90°,旋转变换矩阵为:100000100100000110000)2cos()2sin(00)2sin()2cos(00001RxT为了使俯视图和主视图有一定的间距,还要使xoy面沿z负方向平移一段距离z01000100001000010zTTz⑵俯视图100010000100001100000100100000110000000001000010zTTTTTzRxxoyH100000001000001T0Hz俯视图的投影变换矩阵为上述三个变换矩阵的乘积:俯视图总投影变换矩阵为:⑵俯视图10000100001000001101'''zyxzyzyx1000010000100000yozT将三维形体向yoz面作垂直投影得到侧视图。设三维物体上任一点坐标用P(x,y,z)表示,它在yoz面上投影后坐标为P’(x’,y’,z’)。其中x’=0,y’=y,z’=z。yoz面投影变换矩阵为:⑶侧视图为了在xoz平面内表示侧视图,需要将yoz面绕z轴逆时针旋转90°,旋转变换矩阵为:100001000001001010000100002cos2sin002sin2cosRzT为了使侧视图和主视图之间有一定的间距,还要将yoz面沿x轴负向平移一段距离x01000100001000010xTTx⑶侧视图100010000100001100001000001001010000100001000000xTTTTTxRzyozW100010000010000T0wx侧视图的投影变换矩阵为上面三个变换矩阵的乘积:侧视图总投影变换矩阵为:⑶侧视图从三视图的变换矩阵可以看出,三个视图中的y坐标始终为0,表明三个视图均落在xoz平面上,即三维物体用二维视图来表示。三视图是工程上常用的图样,由于三视图中物体的投影面平行于坐标平面,其投影能真实地反映物体的实际尺寸,三个视图具有长对正、高平齐、宽相等的特点,因此,机械工程中常用三视图来测量形体间的