计算机图形学13投影变换.ppt
2023/9/15,湖北大学 数计学院,信息学院,投 影 变 换,2023/9/15,湖北大学 数计学院,2,7.4 投影变换7.4.1 基本概念,投影变换就是把三维立体(或物体)投射到投影面上得到二维平面图形。分类:平面几何投影主要指平行投影、透视投影以及通过这些投影变换而得到的三维立体的常用平面图形:三视图、轴测图。观察投影是指在观察空间下进行的图形投影变换。,2023/9/15,湖北大学 数计学院,3,7.4 投影变换7.4.1 基本概念,投影中心与投影平面之间的距离为无限,投影中心与投影平面之间的距离为有限,根据投影方向与投影平面的夹角,根据投影平面与坐标轴的夹角,2023/9/15,湖北大学 数计学院,4,7.4 投影变换7.4.1 基本概念,一、平面几何投影投影中心、投影面、投影线:,2023/9/15,湖北大学 数计学院,5,7.4 投影变换7.4.1 基本概念,平面几何投影可分为两大类:透视投影的投影中心到投影面之间的距离是有限的平行投影的投影中心到投影面之间的距离是无限的,2023/9/15,湖北大学 数计学院,6,7.4 投影变换7.4.2 平行投影,平行投影可分成两类:正投影和斜投影。,2023/9/15,湖北大学 数计学院,7,7.4 投影变换7.4.2 平行投影,一、正投影正投影又可分为:三视图和正轴测。当投影面与某一坐标轴垂直时,得到的投影为三视图;否则,得到的投影为正轴测图。,2023/9/15,湖北大学 数计学院,8,7.4 投影变换7.4.2 平行投影,三视图:正视图、侧视图和俯视图,2023/9/15,湖北大学 数计学院,9,7.4 投影变换7.4.2 平行投影,把三维空间的图形在三个方向上所看到的棱线分别投影到三个坐标面上。再经过适当变换放置到同一平面上。,2023/9/15,湖北大学 数计学院,10,7.4 投影变换7.4.2 平行投影,1、正平行投影(三视图)工程制图中常用到的三视图,是由空间一物体向三个互相垂直的投影面作正投影得到的。这三个投影面分别称为:正投影面V(ZOX),侧投影面W(YOZ),水平投影面H(XOY)。,V,O,U,Z,X,Y,Y,2023/9/15,湖北大学 数计学院,11,7.4 投影变换7.4.2 平行投影,正投影视图正投影是将立体向xoz面投影得到,投影结果为:x=x;y=0;z=z为将点(x y z)变换为(x y z),只需将点(x y z)作如下变换即可:,三视图,2023/9/15,湖北大学 数计学院,12,7.4 投影变换7.4.2 平行投影,将该投影向左角移动dx=tx,dy=tz;将x轴反向与U轴保持一致;将坐标原点平移到点(a,b)。,三视图,2023/9/15,湖北大学 数计学院,13,7.4 投影变换7.4.2 平行投影,俯投影视图1)将立体向xoy面作正投影,此时Z坐标取0;,三视图,2023/9/15,湖北大学 数计学院,14,7.4 投影变换7.4.2 平行投影,2)使水平投影面绕X轴旋转-90,使与正投影面处于同一平面;3)最后让图形沿Z轴平移dx=tx,dy=ty;将x轴、y轴反向以与U、V两坐标轴方向一致;5)将坐标原点平移至点O,2023/9/15,湖北大学 数计学院,15,7.4 投影变换7.4.2 平行投影,侧投影视图先将立体向YOZ面作正投影(X坐标取为0);,2023/9/15,湖北大学 数计学院,16,7.4 投影变换7.4.2 平行投影,2)使水平投影面绕Z轴旋转90,使与正投影面处于同一平面;3)最后让图形沿Z轴平移dx=ty,dy=tz;4)将坐标原点平移至点O,2023/9/15,湖北大学 数计学院,17,7.4 投影变换7.4.2 平行投影,1、正轴测图:当投影方向不取坐标轴方向,投影平面不垂直于坐标轴时,产生的正投影称为正轴测投影。正轴测投影分类:正等测:投影平面与三个坐标轴的交点到坐标原点的距离都相等。沿三个轴线具有相同的变形系数。,2023/9/15,湖北大学 数计学院,18,7.4 投影变换7.4.2 平行投影,正二测:投影平面与两个坐标轴的交点到坐标原点的距离都相等。沿两个轴线具有相同的变形系数。,2023/9/15,湖北大学 数计学院,19,7.4 投影变换7.4.2 平行投影,正三测:投影平面与三个坐标轴的交点到坐标原点的距离都不相等。沿三个轴线具有各不相同的变形系数。,2023/9/15,湖北大学 数计学院,20,7.4 投影变换7.4.2 平行投影,正等测图(等轴测),分析:对于正等测图OA=OB=OC,正二测图,分析:对于正二测图OA、OB、OC有两个相等,但与另一个不等,2023/9/15,湖北大学 数计学院,22,7.4 投影变换7.4.2 平行投影,一、斜投影斜投影图,即斜轴测图,是将三维形体向一个单一的投影面作平行投影,但投影方向不垂直于投影面所得到的平面图形。(通常选择投影面平行于某个主轴)常用的斜轴测图有斜等测图和斜二测图。,2023/9/15,湖北大学 数计学院,23,7.4 投影变换7.4.2 平行投影,斜等测投影投影平面与一坐标轴垂直投影线与投影平面成45角与投影平面垂直的线投影后长度不变斜二测投影投影平面与一坐标轴垂直投影线与该轴夹角成 arcctg(1/2)角该轴轴向变形系数为。即与投影平面垂直的线投影后长度变为原来的一半。,2023/9/15,湖北大学 数计学院,24,7.4 投影变换7.4.2 平行投影,OP=OP,=ARCTG(2)OP=2OP,2023/9/15,湖北大学 数计学院,25,7.4 投影变换7.4.2 平行投影斜平行投影求法,1 已知投影方向矢量为(xp,yp,zp)设形体被投影到XOY平面上形体上的一点(x,y,z)在xoy平面上投影后(xs,ys)投影方向矢量为(xp,yp,zp)投影线的参数方程为:,2023/9/15,湖北大学 数计学院,26,7.4 投影变换7.4.2 平行投影斜平行投影求法,因为所以若令,2023/9/15,湖北大学 数计学院,27,7.4 投影变换7.4.2 平行投影斜平行投影求法,则矩阵式为:,2023/9/15,湖北大学 数计学院,28,7.4 投影变换7.4.2 平行投影斜平行投影求法,2设(xe,ye,ze)为任一点,(xs,ys)为(xe,ye,ze)在XcOcYc平面上的投影设立方体上一点 P(0,0,1)在XcOcYc平面上的投影P(lcos,lsin,0),投影方向为PP,PP与投影面的夹角为,为投影与x轴的夹角,则投影方向矢量为(lcos,lsin,-1),2023/9/15,湖北大学 数计学院,29,7.4 投影变换7.4.2 平行投影斜平行投影求法,现考虑任一点(xe,ye,ze)在XcOcYc平面上的投影(xs,ys)投影方向与投影线PP平行所以,2023/9/15,湖北大学 数计学院,30,7.4 投影变换7.4.2 平行投影斜平行投影求法,矩阵形式为:,斜等侧中:l=1,=45斜二侧中:l=1/2,=arctg=63.4正平行投影:l=0,=90,2023/9/15,湖北大学 数计学院,31,7.4 投影变换7.4.3 透视投影透视的基本知识,透视投影是一种中心投影法,在日常生活中,我们观察外界的景物时,常会看到一些明显的透视现象。如:我们站在笔直的大街上,向远处看去,会感到街上具有相同高度的路灯柱子,显得近处的高,远处的矮,越远越矮。这些路灯柱子,即使它们之间的距离相等,但是视觉产生的效果则是近处的间隔显得大,远处的间隔显得小,越远越密。观察道路的宽度,也会感到越远越窄,最后汇聚于一点。这些现象,称之为透视现象。产生透视的原因,可用下图来说明:,2023/9/15,湖北大学 数计学院,32,7.4 投影变换7.4.3 透视投影透视的基本知识,图中,AA,BB,CC为一组高度和间隔都相等,排成一条直线的电线杆,从视点E去看,发现AEABEBCEC若在视点E与物体间设置一个透明的画面P,让P通过AA,则在画面上看到的各电线杆的投影aabbccaa即EA,EA与画面P的交点的连线;bb即为EB,EB与画面P的交点的连线。cc 即为EC,EC与画面P的交点的连线。近大远小,2023/9/15,湖北大学 数计学院,33,7.4 投影变换7.4.3 透视投影透视的基本知识,若连a,b,c及a,b,c各点,它们的连线汇聚于一点。然而,实际上,A,B,C与A,B,C的连线是两条互相平行的直线,这说明空间不平行于画面(投影面)的一切平行线的透视投影,即a,b,c与a,b,c的连线,必交于一点,这点我们称之为灭点。,2023/9/15,湖北大学 数计学院,34,7.4 投影变换7.4.3 透视投影灭点,不平行于投影面的平行线的投影会汇聚到一个点,这个点称为灭点(Vanishing Point)。坐标轴方向的平行线在投影面上形成的灭点称作主灭点。一点透视有一个主灭点,即投影面与一个坐标轴正交,与另外两个坐标轴平行。两点透视有两个主灭点,即投影面与两个坐标轴相交,与另一个坐标轴平行。三点透视有三个主灭点,即投影面与三个坐标轴都相交。,2023/9/15,湖北大学 数计学院,35,7.4 投影变换7.4.3 透视投影透视举例,一、简单的一点透视投影变换,P0:视点S平面:投影面,屏幕画面点Qw的透视:P0Qw与平面S的交点,当投影面与某轴垂直时为一点透视;当投影面平行于某坐标轴,但与另外两轴不垂直时为二点透视;否则为三点透视,Qw(Xw,Yw,Zw)Qs(Xs,Ys),简单的一点透视投影变换(续),讨论:,利用几何关系可得:,若令用户坐标系(屏幕坐标)的原点在O,则 Z1 0,上式可简化为:,讨论(续):,(2)上述变换可写为,回忆前面对齐次坐标变换矩阵的讨论,知若 g-1/Z2,则主灭点在 Z 轴上 Z 1/g 处,湖北大学 数计学院,讨论(续):,(3)类似,若主灭点在 Y 轴或 X 轴上,变换矩阵可分别写为:,2023/9/15,湖北大学 数计学院,40,二点透视投影的变换矩阵,)二点透视在变换矩阵中,第四列的p,q,r起透视变换作用 当p、q、r中有两个不为0时的透视变换称为二点透视变换。假定p!=0,r!=0,q=0;将空间上一点(x,y,z)进行变换,可得如下结果:,2023/9/15,湖北大学 数计学院,41,二点透视投影的变换矩阵,由上式可看出:当x-时,在X轴上1/p处有一个灭点;当z-时,在Z轴上1/r处有一个灭点;,经齐次化处理后得:,2023/9/15,湖北大学 数计学院,42,三点透视投影的变换矩阵,)三点透视类似,若p,q,r都不为0,则可得到有三个灭点的三点透视。,经齐次化处理后得:,2023/9/15,湖北大学 数计学院,43,三点透视投影的变换矩阵,由上式可看出:当x-时,在X轴上1/p处有一个灭点;当y-时,在Y轴上1/q处有一个灭点;当z-时,在Z轴上1/r处有一个灭点;,2023/9/15,湖北大学 数计学院,44,7.5 三维裁剪,三维窗口经投影变换后,在平行投影时为立方体,在透视投影时为四棱台。三维线段裁剪就是要显示一条三维线段落在三维窗口内的部分线段。本课以平行投影为例讨论三维线段的裁剪算法 对于立方体裁剪窗口六个面的方程分别是:x=-1;x=1 y=-1;y=1 z=-1;z=1,2023/9/15,湖北大学 数计学院,45,空间任一条直线段P1(x1,y1,z1)、P2(x2,y2,z2)。P1P2端点和六个面的关系可转换为一个6位二进制代码表示,其定义如下,2023/9/15,湖北大学 数计学院,46,第1位为1:点在裁剪窗口的上面,即y1;否则第1位为0第2位为1:点在裁剪窗口的下面,即y1;否则第3位为0上,第4位为1:点在裁剪窗口的左面,即x1;否则第5位为0第6位为1:点在裁剪窗口的前面,即z-1;否则第6位为0 即:前后左右下,2023/9/15,湖北大学 数计学院,47,计算原理,如同二维线段对矩形窗口的编码裁剪算法一样,(1)若一条线段的两端点的编码都是0,则线段落在窗口的空间内;(2)若两端点编码的逻辑与(逐位进行)为非0,则此线段在窗口的空间以外否则,需对此线段作分段处理,即要计算此线段和窗口空间相应平面的交点,并取有效交点,2023/9/15,湖北大学 数计学院,48,计算方法,l 对任意一条三维线段的参数方程可写成:x=x1+(x2 x1)t=x1+p.t(1)y=y1+(y2 y1)t=y1+q.t(2)z=z1+(z2 z1)t=z1+r.t(3)0=t=1l 而裁剪空间六个平面方程的一般表达式为:a x+b y+c z+d=0(4)l 把直线方程代入平面方程求得:t=-(a x1+b y1+c z1+d)/(a*p+b*q+c*r)(5),2023/9/15,湖北大学 数计学院,49,假如要求一条直线与裁剪空间上平面的交点将 y=1 代入 方程(2)得 t=(1 y1)/q(1)若t 不在 0 1 的区间内,则交点在裁剪空间以外(2)若t 在 0 1 的区间内,则将t 代入式(1)和(3)分别得:x=x1+(1 y1)*p/qz=z1+(1 y1)*r/q,2023/9/15,湖北大学 数计学院,50,故三维线段与裁剪窗口的有效交点为(x1+(1y1)*p/q,1,z1+(1y1)*r/q)类似地可求得其他5个面与直线段的有效交点,连接有效交点可得到落在裁剪窗口内的有效线段。按照上述编码方法,可以很方便地将二维的Cohen Sutherland 算法与中点分割算法推广到三维,只要把二维算法中计算线段与窗口边界线交点的部分换成计算线段与三维裁剪空间侧面的交点即可,