第6章 三维变换和三维观察

上传人:我*** 文档编号:137676709 上传时间:2020-07-11 格式:PPT 页数:105 大小:1.76MB
返回 下载 相关 举报
第6章 三维变换和三维观察_第1页
第1页 / 共105页
第6章 三维变换和三维观察_第2页
第2页 / 共105页
第6章 三维变换和三维观察_第3页
第3页 / 共105页
第6章 三维变换和三维观察_第4页
第4页 / 共105页
第6章 三维变换和三维观察_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《第6章 三维变换和三维观察》由会员分享,可在线阅读,更多相关《第6章 三维变换和三维观察(105页珍藏版)》请在金锄头文库上搜索。

1、第六章 三维变换和三维观察,本章内容,3D变换 3D观察 3D平移 3D投影变换 3D变比 3D旋转 3D反射与错切 3D复合变换,6.1 3D Translation,平移向量: tx, ty, tz 矩阵表达 x 1 0 0 tx x y 0 1 0 ty y z 0 0 1 tz z 1 0 0 0 1 1,举例,6.2 3D Scale,针对原点变比 变比因子: sx, sy, sz 矩阵表达 x sx 0 0 0 x y 0 sy 0 0 y z 0 0 sz 0 z 1 0 0 0 1 1,举例,针对固定点变比 参数: sx, sy, sz, (xf, yf, zf) 变换矩阵 M

2、=T(xf, yf, zf)S(sx, sy, sz)T(-xf,-yf, -zf),Original,scale all axes,scale Y axis,offset from origin,distance from origin also scales,6.3 3D Rotations,旋转参数 指定旋转轴 旋转角度以及方向 基本旋转变换类型 Z-axis Rotation X-axis Rotation Y-axis Rotation,z-axis Rotation,代数方程 x = xcos - ysin y = xsin + ycos z = z,z-axis Rotation

3、,矩阵表达 P= Rz()*P x cos -sin 0 0 x y sin cos 0 0 y z 0 0 1 0 z 1 0 0 0 1 1,x-axis Rotation,x-y-z-x 代数方程 y = ycos - zsin z = ysin + zcos x = x,x-axis Rotation,矩阵表达P= Rx()*P x 1 0 0 0 x y 0 cos -sin 0 y z 0 sin cos 0 z 1 0 0 0 1 1,y-axis Rotation,x-y-z-x 代数方程 z = zcos - xsin x = zsin + xcos y = y,y-axis

4、 Rotation,矩阵表达 P= Ry()*P x cos 0 sin 0 x y 0 1 0 0 y z -sin 0 cos 0 z 1 0 0 0 1 1,rotation of 45o about the Z axis,offset from origin rotation,举例,General 3D Rotations,任意轴平行于坐标轴之一 平移使任意轴与平行坐标轴重合 完成指定旋转 反向平移使回到原位置 Example 任意轴平行于X轴的变换矩阵M=T-1 RX()T,任意轴不平行于任何坐标轴 平移使任意轴过原点 旋转使任意轴与坐标轴之一重合 完成指定旋转 反向旋转 反向平移,

5、General 3D Rotations,M=T-1Rx(-a)Ry(-b)Rz()Ry(b)Rx(a)T,旋转轴由两个坐标点确定 P1(x1, y1, z1) P2(x2, y2, z2) 旋转轴矢量 V = P2P1 = (Vx, Vy, Vz) 沿旋转轴的单位向量 u=V/|V| =(a, b, c) a=(x2-x1)/|V|、b=(y2-y1)/|V| c=(z2-z1)/|V| |V| = sqrt(Vx2 + Vy2 + Vz2),u,General 3D Rotations,第一步:平移物体,使旋转轴通过原点,平移矢量 T1 = T(tx, ty, tz) = T(-x1, -

6、y1, -z1) =,第二步:旋转物体使旋转轴与z轴重合,旋转物体使旋转轴与z轴重合分两步 将向量U绕x轴旋转到xz平面上: Rx() 将向量U绕y轴旋转到z轴上: Ry(),x,z,y,u(a,b,c),x,z,y,u (a,0,d),u (a,0,d),uz(0,0,1),第二步的第一小步 将向量U绕x轴旋转到xz平面上: Rx(),u为u在yz平面上的投影,将向量U绕x轴旋转到xz平面上: Rx(),cos(),sin()求解 利用向量的点乘运算确定余弦项 cos()=u.uz/(|u|.|uz|)=c/d |uz|=1 及 |u|=d=sqrt(b2+c2) 利用向量的叉乘运算确定正弦

7、项uuz=ux|u|.|uz|sin()=b.ux sin()=b/d,将向量U绕x轴旋转到xz平面上:Rx(),Rx()=,第二步的第二小步 将向量U绕y轴旋转到z轴上: Ry(),将向量U绕y轴旋转到z轴上:Ry(),cos(),sin()求解 利用向量的点乘运算确定余弦项cos()=u.uz/(|u|.|uz|)=d |uz|=1 及 |u| = sqrt(d2 + a2) = |u| = 1 利用向量的叉乘运算确定正弦项uuz=uy|u|uz|sin()=-a.uy sin()=-a,将向量U绕y轴旋转到z轴上:Ry(),Ry()=,第三步:完成指定旋转 Rz(),Rz()=,第四步:

8、反向旋转使旋转轴回到原始方向,Ry(-)= Ry-1 () Rx(-)= Rx-1 (),第五步:反向平移使旋转轴回到原始位置,T2=,M=T-1Rx(-a)Ry(-b)Rz()Ry(b)Rx(a)T,6.4 3D Reflection bb即为EB,EB与画面P的交点的连线。 cc 即为EC,EC与画面P的交点的连线。 近大远小,若连a,b,c及a,b,c各点,它们的连线汇聚于一点。 然而,实际上,A,B,C与A,B,C的连线是两条互相平行的直线,这说明空间不平行于画面(投影面)的一切平行线的透视投影,即a,b,c与a,b,c的连线,必交于一点,这点我们称之为灭点。,透视投影 投影中心与投影

9、平面之间的距离为有限 特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。 灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点. 主灭点:平行于坐标轴的平行线产生的灭点。 一点透视 两点透视 三点透视,主灭点数是和投影平面切割坐标轴的数量相对应的,即由坐标轴与投影平面交点的数量来决定的。 如投影平面仅切割z轴,则z轴是投影平面的法线,因而只在z轴上有一个灭点,平行于x轴或y轴的直线也平行于投影平面,因而没有灭点。,y,x,z,o,一点透视(平行透视),人眼从正面去观察一个立方体,当z轴与投影平面垂直时,另两根轴ox,oy轴平行于投影平面。这时的立方体透视图只

10、有一个灭点,即与画面垂直的那组平行线的透视投影交于一点。,例5-1:试绘制如图所示的单位立方体的一点透视图。,二点透视(成角透视),人眼观看的立方体是绕y轴旋转一个角度之后,再进行透视投影。三坐标轴中oy轴与投影平面平行,而其它两轴与画面倾斜,这时除平行于oy轴的那组平行线外,其它两组平行线的透视投影分别在投影平面的左右两侧,作出的立方体透视图产生两个灭点。,可以这样来构造二点透视的一般步骤: (1)先将三维形体平移到适当位置,使视点有一定高度,且使形体的主要表面不会积聚成线; (2)将形体绕y轴旋转一个角(90),方向满足右手定则; (3)进行透视变换 (4)最后向xoy面作正投影,即得二点

11、透视图。,例:试绘制上例(例5-1)中的单位立方体的二点透视图。,参考动画,三点透视(斜透视),此时,投影平面与三坐标轴均不平行。 这时的三组平行线均产生灭点。,同样可以简单的构造三点透视图: (1)首先将三维形体平移到适当位置; (2)将形体进行透视变换 (3)然后使形体先绕y轴旋转角; (4)再绕x轴旋转角; (5)将变形且旋转后的形体向xoy面作正投影。,参考动画,透视举例,三点透视,二点透视,一点透视,一点透视投影的变换矩阵,1) 一点透视 设z轴上有一观察点(即视点)V(0,0,h) 从V点出发将物体上的点P(x,y,z)投影到XOY平面上得到P (x,y,0) 由相似三角形可知:,

12、一点透视投影的变换矩阵,令:,一点透视投影的变换矩阵,这是变换矩阵为 的齐次坐标变换 它可以看作是先作变换,一点透视投影的变换矩阵,再做变换 的合成。,一点透视投影的变换矩阵,在透视变换Mr下有:,一点透视投影的变换矩阵,当z时,x 0,y 0,z -h (0,0,-h)为该透视的一个灭点。 同样,视点在(h,0,0)的透视变换,灭点在(-h,0,0) 变换矩阵为,一点透视投影的变换矩阵,视点在(0,h,0)的透视变换,灭点在(0,-h,0) 变换矩阵为,一点透视投影的变换矩阵,在变换矩阵中,第四列的p,q,r起透视变换作用,一点透视投影的变换矩阵,当p、q、r中有一个不为0时的变换。假定q!

13、=0,p=r=0. 对空间上任一点(x,y,z)进行透视变换结果如下: 对该结果进行规范化处理后,便得:,一点透视变换的几何意义,当y=0时: x = x y = 0 z = z 即处于y=0平面上的点,经过透视变换后没有变化。 当y=时 x = 0 y = 1/q z = 0 即当y-所有点的变换结果都集中到Y轴的1/q处,也即所有平行于Y轴的直线,变换后都将沿伸相交于该点。该点即为灭点。,二点透视投影的变换矩阵,) 二点透视 在变换矩阵中,第四列的p,q,r起透视变换作用 当p、q、r中有两个不为0时的透视变换称为二点透视变换。假定p!=0, r!=0, q=0; 将空间上一点(x,y,z

14、)进行变换,可得如下结果:,二点透视投影的变换矩阵,由上式可看出: 当x-时,在X轴上1/p处有一个灭点; 当z-时,在Z轴上1/r处有一个灭点;,经齐次化处理后得:,三点透视投影的变换矩阵,) 三点透视 类似,若p,q,r都不为0,则可得到有三个灭点的三点透视。,经齐次化处理后得:,三点透视投影的变换矩阵,由上式可看出: 当x-时,在X轴上1/p处有一个灭点; 当y-时,在Y轴上1/q处有一个灭点; 当z-时,在Z轴上1/r处有一个灭点;,透视投影的技巧,一点透视图的生成 在生成一点透视图时,为了避免将物体安置在坐标系原点,而产生下图所示的透视效果,通常在透视变换前,先将立体作一平移变换。,

15、透视投影的技巧,其变换过程如下: 1)先作平移变换; 2)再作透视变换; 3)最后将结果投影到投影面。 由于往XOZ平面上投影,故一点透视变换的灭点选在Y轴上。以下是其变换公式。,透视投影的技巧,透视投影的技巧,二点透视投影图的生成 当立体经透视变换后,若直接投影到V面上,可能其立体效果并不理想,所以,在透视变换后,对变换结果绕Z轴旋转后,以使物体轴线不与投影面垂直,再向V面上投影其效果会更好。 变换过程如下: 1)先对立体进行二点透视变换; 2)再把变换结果绕Z轴旋转一角度; 3)最后将上述变换结果投影到投影面上。,透视投影的技巧,三点透视投影图生成 与二点透视投影图生成变换理由一样,在透视变换后,先对变换结果作旋转变换,以保证透视投影面与物体上的三个坐标轴均不平行,从而获得立体效果更好的透视投影图。变换过程如下: 1)首先对物体作三点透视变换; 2)将透视变换结果绕Z轴旋转一角度 3)再绕X轴旋转一角; 4)将上述结果投影到投影面。,作业 6,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号