总结1三维观察流程观察空间的定义用户坐标系到观察坐标系的转换规范化投影变换三维裁剪正、透视投影二维变换输出裁剪后的三维形体用户坐标系中的几何形体观察坐标系中的三维形体规范化观察空间中的三维形体二维坐标系下的图形输出设备上的图形1、在世界坐标系中生成图形;2、将世界坐标系中的图形描述转换到观察坐标系中;3、观察空间的规范化变换;4、在规范化空间内进行图形的三维裁剪;5、裁剪完后即可作正、透视投影,将裁剪后的图形投影到观察平面上;6、最后,将观察窗口中的内容在图形输出设备上进行显示。为了便于几何造型和图形的观察与显示,引入了一系列的坐标系:1.世界坐标系:世界坐标系(用户坐标系)是一个三维笛卡儿坐标系。它是一个全局坐标系统。该坐标系主要用于图形场景中的所有图形对象的空间定位、观察者(视点)的位置和视线的定义等等。2.局部坐标系:为了几何造型和观察物体方便起见,在局部坐标系中定义“局部”物体,通过指定局部坐标系在世界坐标系中的方位,利用几何变换,就可以将“局部”定义的物体变换到世界坐标系内,使之升级成为世界坐标系中的物体。3.观察坐标系:观察坐标系是以视点的位置为原点。观察坐标系用于从观察者的角度对整个世界坐标系内的图形对象进行观察,以便简化几何物体在视平面(又称为投影面)成像的数学计算。4.视平面(成像面或投影面)坐标系:是一个二维直角坐标系统,主要用于计算物体在成像面上(二维平面)的投影。5.规格化设备坐标系:为了使图形处理过程做到与设备无关,通常采用一种虚拟设备的方法来处理。这种设备坐标规定为0≤X≤1,0≤Y≤1,这种坐标系称之为规格化设备坐标系。6.设备坐标系:用于某一特定的计算机图形显示设备的表面的点的定义。在多数情况下,对于每一个具体的显示设备,都有一个单独的设备坐标系。三维图形的几何变换1、平移变换2、比例变换3、对称变换4、错切变换5、旋转变换6、平移、旋转、比例的逆变换三维复合变换是指图形作一次以上的变换,变换结果是每次的变换矩阵相乘:)1()('321nTTTTPTPPn1、相对任一参考点的三维变换相对于参考点F(xf,yf,zf)作比例、旋转、错切等变换的过程分为以下三步:(1)将参考点F移至坐标原点(-xf,-yf,-zf);(2)针对原点进行三维几何变换;(3)做(1)的逆变换。进行反平移(xf,yf,zf)三维图形的几何变换---三维复合变换2、绕任意轴的三维旋转变换XYZABP'PθP点绕AB轴旋转如右图所示,假设已知空间有任意轴AB,A点的坐标为A(xA,yA,zA),AB的方向数为(a,b,c)。现有空间一点p(x,y,z),绕AB轴逆时针旋转θ角后成为p’(x’,y’,z’),若旋转变换矩阵为TRAB,则应有:RABTzyxzyx11'''三维图形的几何变换---三维复合变换平面几何投影的分类:平面几何投影平行投影透视投影正投影斜投影三视图正轴测斜等测斜二测正等测正二测正三测主视图侧视图俯视图一点透视二点透视三点透视平面几何投影主视图变换矩阵Tv侧平行投影---三视图x’=-x,y’=z侧X’y’Xz侧俯视图变换矩阵THx’=-x,y’=z平行投影---三视图侧侧视图变换矩阵TWx’=-x,y’=z平行投影---三视图三个基本平面图形形成后,要标注尺寸,使三个基本平面视图之间有一定的距离,即将H面视图相对V面视图向下进行平移m,将W面视图相对v面视图向右进行平移L。则最后得到三视图的变换矩阵为:侧三视图变换矩阵平行投影---三视图投影方向不垂直于投影平面的平行投影被称为斜平行投影。下图中的Z=0的坐标平面为观察平面,点(x,y)为点(x,y,z)在观察平面上的正平行投影坐标,点(x/,y/)为斜投影坐标。(x,y)与(x/,y/)的距离为L。由此可得:令斜平行投影点的透视变换如右图所示,假定投影中心在z轴上(z=-d处),投影面在面xOy上,与z轴垂直,d为投影面与投影中心的距离。现在求空间一点p(x,y,z)的透视投影p’(x’,y’)点的坐标。根据相似三角形对应边成比例的关系有:zddyyxx''yzxp(x,y,z)p'(x',y')o点的一点透视透视投影---生成透视投影图的方法于是有:0'1'1'zdzyydzxx该过程写为变换矩阵形式为:1000000000100001100011000010000111'''dzyxzyx求空间一点的透视投影时,可先将空间点的齐次坐标乘以透视变换矩阵,使之产生透视变形,再乘以向投影面投影的变换矩阵,就得到了点在画面上的投影。若假定r=1/d,则上式还可写为:透视投影---生成透视投影图的方法100000000010000110001000010000111'''rzyxzyx若投影中心在无穷远处,则r=1/d→0,上式变为平行投影。视点在Z轴上的透视投影变换矩阵表示为:透视投影---生成透视投影图的方法同理,对于视点在x轴和y铀上的透视变换矩阵Tp和Tq分别为只要将三维物体上各个点分别作透视变换,再将投影后得到的点依次连接后,即可得到三维物体的透视投影。透视投影---生成透视投影图的方法定义观察正向矢量V。先任选一个与N不平行的矢量V’,然后再将该矢量投影于与N垂直的平面,投影后的矢量即垂直于N,作为向量V。利用向量N和向量V,计算与这两向量均垂直的第三个向量U,U对应于xv轴的正向。由此建立起观察坐标系UVN。建立观察坐标系的三要素:观察参考点VRP、观察平面法向量N和视图向上向量V。建立观察坐标系在世界坐标系中挑选一点作为观察坐标系的原点---观察参考点VRP。在该点处指定法矢量N。具体可分为以下两步:(1)平移观察参考点到世界坐标系的原点。如果指定世界坐标系中的点P(x0,y0,z0)观察参考点.则对应的平移变换矩阵为:从世界坐标到观察坐标的变换(2)旋转变换:如果N不与任一世界坐标轴方向相同时,通过复合旋转变换实现观察坐标轴xv,yv和zv分别与世界坐标轴xw,yw和zw重合。绕Xw轴将N绕到XwZw平面:Rx();绕Yw轴将N转到与Zw重合:Ry();绕Zw轴将yv转到与Yw对齐:Rz;T2=Rx·Ry·Rz从世界坐标到观察坐标的变换观察体•观察体–观察体是三维裁剪窗口–建立步骤(1)定义窗口(2)形成观察空间(发出射线)(3)形成观察体(视见体)(前后裁剪面)定义一个观察体所需的投影参数•定义一个观察体所需的投影参数及其作用参数作用投影类型定义投影是平行投影还是透视投影观察参考点VRP在世界坐标系中指定,为观察坐标系原点观察平面法向VPN在世界坐标系中指定,为观察坐标的n轴观察正向VUP在世界坐标系中指定,确定观察坐标系的v投影参考点PRP在观察坐标系中指定确定投影中心或投影方向前裁剪面裁距F在观察坐标系中指定,n=F为前裁剪面后裁剪面裁距B在观察坐标系中指定,n=B为后裁剪面窗口umin,umax、vmin、vmax在观察坐标系的uv平面上指定,确定窗口与视见体对平行投影,规范化观察体是如下一个单位立方体规范化观察体1,01,11,1nnvvuu对透视投影,规范化观察体是如下一个平截头正四棱锥1,,,minnnnnvnvnunu平行投影空间的规范化设:在观察坐标系中:窗口参数:(umin,vmin,umax,vmax)前后截面位置分别为:n=F,n=B投影线方向为:DOP=窗口中心坐标-投影参考点坐标=(up,vp,np)(umax,vmax)(umin,vmin)变换1:平移使窗口中心与坐标原点重合。1000010020102001maxminmaxmin1vvuuT变换2:关于Z轴的错切变换使投影方向与Z轴重叠unun满足要求:(up,vp,np)→(0,0,np)对于正投影来说,up=vp=0,该错切变换矩阵退化为单位矩阵。可得上述错切变换的变换系数:,1ppnucppnvc2T2记错切变换矩阵为:解方程:变换3:平移变换:使前截面与uv平面重合。1000100001000013FT1000010000200002minmaxminmax4BFvvuuT变换4:比例变换使视见体的尺寸与规范化视见体一致。由于此时视见体在u,v,n方向上的边长分别为:Umax–Umin,Vmax–Vmin,F–B,而规范化视见体介于-1=u,v=1,-1=n=0的范围之间。所以缩放变换在u,v,n方向上的比例变换矩阵为1234TTTTT该变换矩阵将任意的平行投影视见体变换为规范的平行投影视见体。经上述变换作用后,观察坐标系下的指定平行投影变换效果将等价于在规格化投影空间中进行正平行投影变换。平行投影观察体规范化变换矩阵:透视投影空间的规范化设:在观察坐标系中:窗口参数:(umin,vmin,umax,vmax)前后截面位置分别为:n=F,n=B投影中心点坐标为:(prpu,prpv,prpn)变换1:平移使投影中心与坐标原点重合10001000100011nvuprpprpprpT变换1以后的投影空间参数:),2,2(minmaxminmax'nvuprpprpvvprpuuCW窗口中心为:nprpn投影平面:前后截面位置分别为:n=F-prpn,n=B-prpnnuun变换2:作错切变换,使投影中心与窗口中心的连线与n轴重合,从而使斜四棱台变为正四棱台。错切变换应使窗口中心由),2,2(minmaxminmax'nvuprpprpvvprpuuCW),0,0(''nprpCW变换到12210000100010001100minmaxminmax21nvunprpprpvvprpuuccprp即:nun1prpprpprpuuC2minmaxnun2prpprpprpvvC2minmax推导出错切变换矩阵1000010002100201minmaxminmax2nunnunprpprpprpvvprpprpprpuuT变换2后的投影空间参数:nprpuuun2minmax),0,0(''nprpCW窗口中心为:nprpn投影平面:此时投影空间的四个侧平面分别为:nprpuuun2minmaxnprpvvvn2minmaxnprpvvvn2minmax前后截面位置分别为:n=F-prpn,n=B-prpn变换3:缩放变换使投影空间规范化1、做缩放变换,将上、下、左、右四个面变为:u=±n;v=±n变换为:nprpuuun2minmaxnprpvvvn2minmax),,(122minmaxminmaxvvprpuuprpSnn2、已有后截面为:n=B-prpn,做相似变换,将后裁剪面变为:n=1),,(nnnprpBprpBprpBS1113、将上面两个变换矩阵合并,得到缩放变换为:),,(122minmaxminmaxvvprpuuprpSnn),,(nnnprpBprpBprpBS111S=•已有四个侧面方程:变换3:缩放变换使投影空间规范化1000010000))((20000))((2minmaxminmax3nnnnnprpBvvprpBprpuuprpBprpT•上述变换复合为:此时,投影空间为规范化正棱台透视投影规范视见体123TTTT规范视见体之间的变换将透视投影的规范视见体变换为平行投影