网站大量收购独家精品文档,联系QQ:2885784924

图形学第七章习答案.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图形学第七章习答案

习题 7.1 为什么需要隐藏面消隐算法? 答: 因为我们在用计算机生成三维物体的真实感图形,必须要做的是确定物体的可见部分,只有确定了物体的可见部分,我们才能在计算机中真实地再现三维物体。因此,我们就需要一个隐藏面消隐算法来去掉物体的不可见部分,从而避免错误地将不可见部分显示出来,这样就可以在计算机中生成一个三维物体的真实感图形了。 7.2 能否用多边形相邻两条边决定的向量积来确定内法线方向?为什么? 答: 可以。 设多边形F的顶点为,顶点的次序要求这样排列,使观察者在多面体外沿着走时,多边形的内部始终在观察者的右侧。(定义) 对顶点进行分类,分为凸点集合A和凹点集合B,对于点: 如果属于集合A,则F的内法线方向定义为;如果属于集合B,则F的内法线方向定义为; 7.3 已知点和一个视点,确定从点观察时,哪个点遮挡了其它点。 答: 连接观察点和点的直线是: 为了判断是否在这条直线上,可以将点带入方程,得时 ,在时 ,所以在过点和点的投影线上。 接着以为基准,判断哪个点在前面。,,分别在这条线的 位置上。由值可知,在前面,即遮挡了。 现在判断是否在这条线上。时。所以不在这条投影线上,既没有遮挡、,也没有被、遮挡。 7.4 设投影中心为原点,构造一个由透视投影到平行投影的变换。此变换使得原物体平行投影在平面上和将原物体透视投影在规范化视见平面上产生的图像相同。 答: 原物体在平面上的透视投影是: 其中,。点在视见平面上的透视投影是: 透视投影到平行投影变换为: 这里,是规范化前裁剪平面的位置。 现在,对点应用变换,得到点: 在平面上的平行投影为: 所以和产生相同的投影图像。而且,变换将以为边界的规范化透视视见体变换到以为边界的长方体上。 7.5 如图7.14所示,如果视图平面法向量为(1,-2,-1),试写出它的一个显示排列。 答: 因为这种排列方式只有第一项和第八项是确定的,所以该排列为 (1,*,*,*,*,*,*,6),其中*可以任意排列。 7.6 z缓冲器算法是怎么判断哪个面应消隐的? 答: 缓冲器算法设置了一个二维数组,类似于帧缓冲器。但是缓冲器存放的是每个象素点的深度值,而不是帧缓冲器中的颜色值。缓冲器的初始值为某个大的数值,通常是后裁剪平面的距离。在判断像素上的哪个平面更靠近观察者时,就可以简单地比较缓冲器中的深度值和当前平面的深度值。如果当前平面的值比缓冲器中的值小(即距视点更近),则用新值替换原缓冲器中的值,像素的颜色值也变成新平面的颜色值。 7.7 基本扫描线方法如何判断哪个面需要消隐? 答: 基本思想:从最上面的一条扫描线开始工作,向下对每一条扫描线进行处理。在处理当前扫描线时,开一个一维数组作为当前扫描线的Z-buffer。首先找出与当前扫描线相关的多边形,以及每个多边形中相关的边对。对每一个边对之间的小区间上的各象素,计算深度,并与Z-buffer中的值比较,找出各象素处可见平面,计算颜色,写帧缓存。对深度计算,采用增量算法。Void paint() {//设多边形已保存在链表m_AllPoly中; //m_AllPoly定义:list Polygon m_AllPoly[800]; int i,k,j,num; //i,k,j临时整形变量,num纪录链表m_AllPoly中多边形的个数; float zmin; //临时变量,设置一个最小值; float temp; //临时变量; bool tag; int Priority //记录优先级的临时变量; //为临时变量赋初值 zmin = -65536; tag = TRUE;

文档评论(0)

owy207 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档