如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
8.1三维形体输出流程图2.观察流水线8.2观察坐标系的建立建立观察坐标系的步骤:1.在用户坐标系中选取一点P0作为观察坐标系的原点,该点称为观察参考点。3.确定yv轴的正向。方法如下:选取一个观察正向V,将它投射到过P0并与N垂直的平面上。注意:可任意选取不与N平行的V。观察平面的选取:与zv轴垂直即与xvyv平面平行的平面。8.3用户坐标系到观察坐标系的变换——观察变换于是,根据第7章坐标变换公式,可得观察变换为:8.4投影变换P18.4.1平行投影当zvp=0,即投影平面为xvyv坐标平面时,zp=0。这时正交平行投影的矩阵表达式为:8.4.2透视投影在观察平面上,z’=zvp,这时,投影线与观察平面的交点坐标为:投影变换的矩阵表达式:造型坐标8.5观察体与三维裁剪给定观察窗口后,我们可以利用窗口的4条边界建立观察体。只有位于观察体中的物体才会在输出设备上显示出来,所有其他部分将被裁剪掉。观察体的大小与观察窗口的大小有关;而其形状与用于显示的投影类型有关。在任何情况下,观察体的四侧都是穿过窗口边界的平面。注意:投影中心在观察坐标系中定义。通过在zv轴上限制观察体的范围可获得有限观察体。具体方法是:在zv轴上指定与观察平面平行的两个附加边界平面。后平面比前平面离投影中心远,且都在投影中心的同一侧。包括前后面在内六个面界定出了观察体。前后裁剪面的作用:(1)裁剪掉不感兴趣的部分;(2)在透视投影中,裁剪掉离观察面很近的大物体,这些物体投影到观察窗口中模糊不清;后平面裁剪掉远离投影中心的物体,这部分物体在输出设备上是很小的点。观察平面、前后裁剪面的相对位置关系依赖于投影的类型以及图形软件包的限制。8.5.2三维裁剪直接裁剪方法及其缺点这种方法直接对观察体进行裁剪。该方法主要涉及空间线段与裁剪面的求交运算。设空间线段L的两个端点分别为P1(x1,y1,z1)和P2(x2,y2,z2),空间中任一平面Q的方程为:ax+by+cz+d=0则L与Q之交点(x,y,z)应满足:x=x1+pty=y1+qtz=z1+rtax+by+cz+d=0其中,p=x2-x1,q=y2-y1,r=z2-z1,0<=t<=1求解可得:2.在规范化空间进行裁剪这种方法先用规范化变换将原来的观察体变换为所谓的标准规范体。然后,在规范化裁剪体中进行裁剪操作。事实上,在观察坐标系中,利用平移、错切变换和比例变换就可将三维裁剪空间变换到规范化投影空间。具体算法这里不做详细介绍。根据投影变换的不同,规范化裁剪空间分为规范化平行投影空间和规范化透视投影空间。窗口即规范化平行投影空间中的物体,沿着垂直于xy平面的方向投影到xy面上。平截头体对于透视投影,其规范化投影空间为正四棱台,6个裁剪面的方程为:二维编码裁剪算法可以直接推广到三维编码裁剪算法,但技术上存在一定的差别。对于三维Cohen-Sutherland裁剪算法,其关键技术包括:(1)如何确定一点P在观察体内或观察体外。(2)为线段的每个端点赋予区域编码。区分两种情况:(a)规范化平行观察体;(b)规范化透视观察体。设P(x,y,z)是一个端点坐标,其位置用一个6位二进制代码表示(设最左边的位是第1位):Above:bit1=sign(y-1)Below:bit2=sign(-y)Right:bit3=sign(x-1)Left:bit4=sign(-x)Behind:bit5=sign(z-1)Front:bit6=sign(-z)(b)对于规范化透视观察体,8.6三维形体完整的输出过程(不考虑消隐)在不考虑隐藏面消隐时,完整的三维观察过程可由以下步骤实现:应用变换Npar或Nper将用户坐标变换成规范化的观察坐标。2.在规范化的观察坐标系中应用规范化裁剪空间对物体进行三维裁剪。3.应用投影变换Par或Per将裁剪后的物体投射到观察平面上。4.应用合适的二维观察变换,在二维平面显示三维形体。若整体观察变换用VT表示,则上述过程可描述如下:投影习题8