图形学第七章习题答案

图形学第七章习题答案

ID:13982610

大小:143.50 KB

页数:5页

时间:2018-07-25

图形学第七章习题答案_第1页
图形学第七章习题答案_第2页
图形学第七章习题答案_第3页
图形学第七章习题答案_第4页
图形学第七章习题答案_第5页
资源描述:

《图形学第七章习题答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、习题7.1为什么需要隐藏面消隐算法?答:因为我们在用计算机生成三维物体的真实感图形,必须要做的是确定物体的可见部分,只有确定了物体的可见部分,我们才能在计算机中真实地再现三维物体。因此,我们就需要一个隐藏面消隐算法来去掉物体的不可见部分,从而避免错误地将不可见部分显示出来,这样就可以在计算机中生成一个三维物体的真实感图形了。7.2能否用多边形相邻两条边决定的向量积来确定内法线方向?为什么?答:可以。设多边形F的顶点为,顶点的次序要求这样排列,使观察者在多面体外沿着走时,多边形的内部始终在观察者的右侧。(定义)对顶点进行分类,分为凸点集合A和凹点集合B

2、,对于点:如果属于集合A,则F的内法线方向定义为;如果属于集合B,则F的内法线方向定义为;7.3已知点和一个视点,确定从点观察时,哪个点遮挡了其它点。答:连接观察点和点的直线是:为了判断是否在这条直线上,可以将点带入方程,得时,在时,所以在过点和点的投影线上。接着以为基准,判断哪个点在前面。,,分别在这条线的位置上。由值可知,在前面,即遮挡了。现在判断是否在这条线上。时。所以不在这条投影线上,既没有遮挡、,也没有被、遮挡。7.4设投影中心为原点,构造一个由透视投影到平行投影的变换。此变换使得原物体平行投影在平面上和将原物体透视投影在规范化视见平面上产

3、生的图像相同。答:原物体在平面上的透视投影是:其中,。点在视见平面上的透视投影是:透视投影到平行投影变换为:这里,是规范化前裁剪平面的位置。现在,对点应用变换,得到点:在平面上的平行投影为:所以和产生相同的投影图像。而且,变换将以为边界的规范化透视视见体变换到以为边界的长方体上。7.5如图7.14所示,如果视图平面法向量为(1,-2,-1),试写出它的一个显示排列。答:因为这种排列方式只有第一项和第八项是确定的,所以该排列为(1,*,*,*,*,*,*,6),其中*可以任意排列。7.6z缓冲器算法是怎么判断哪个面应消隐的?答:缓冲器算法设置了一个二维

4、数组,类似于帧缓冲器。但是缓冲器存放的是每个象素点的深度值,而不是帧缓冲器中的颜色值。缓冲器的初始值为某个大的数值,通常是后裁剪平面的距离。在判断像素上的哪个平面更靠近观察者时,就可以简单地比较缓冲器中的深度值和当前平面的深度值。如果当前平面的值比缓冲器中的值小(即距视点更近),则用新值替换原缓冲器中的值,像素的颜色值也变成新平面的颜色值。7.7基本扫描线方法如何判断哪个面需要消隐?答:基本思想:从最上面的一条扫描线开始工作,向下对每一条扫描线进行处理。在处理当前扫描线时,开一个一维数组作为当前扫描线的Z-buffer。首先找出与当前扫描线相关的多边

5、形,以及每个多边形中相关的边对。对每一个边对之间的小区间上的各象素,计算深度,并与Z-buffer中的值比较,找出各象素处可见平面,计算颜色,写帧缓存。对深度计算,采用增量算法。7.8编写一个程序实现7.5节中的油画家算法。答:Voidpaint(){//设多边形已保存在链表m_AllPoly中;//m_AllPoly定义:listm_AllPoly[800];inti,k,j,num;//i,k,j临时整形变量,num纪录链表m_AllPoly中多边形的个数;floatzmin;//临时变量,设置一个最小值;floattemp;/

6、/临时变量;booltag;intPriority//记录优先级的临时变量;//为临时变量赋初值zmin=-65536;tag=TRUE;Priority=1;//第一步:根据每个多边形顶点z坐标的极小值zmin的大小,按由小到大对它们做初步排序//利用冒泡排序for(j=1;j<=num;j++){for(i=j;i<=num;i++){if(zmin>m_AllPoly[i].zmin)//m_AllPoly[i].zmin为链表中第i个多边形z最小值{zmin=m_AllPoly[i].zmin;k=i;//纪录当前多边形;}//if}//fo

7、ri//按照从小到大排序,找到第j个多边形m_AllPoly[k],将m_AllPoly[j]与//m_AllPoly[k]交换位置。temp=m_AllPoly[j];m_AllPoly[j]=m_AllPoly[k];m_AllPoly[k]=temp;}//forji=1;while(num>1){//第二步:若链表中只有一个多边形,则算法结束。否则取表头多边形P(即m_AllPoly[1])。//首先,判断P的z的最大值是否比链表中任一多边形Q的z坐标值的最小值小。用布//尔变量tag作为标志。如果为TRUE,说明成立;否则不成立。while

8、(i<=num&&tag){if(m_AllPoly[1].zmax>=m_AllPoly[i].zmin)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。