您好,欢迎访问三七文档
题目中所有的坐标系,均以OpenGL坐标系为准1.使用OpenGL图形库渲染如下四棱截锥体图形,根据给定点的A、C、G的坐标推算出其余五个点B、D、E、F、H的坐标答:B(1.0f,-1.0f,0.0f)(2分)D(-1.0f,-1.0f,-2.0f)(2分)E(-0.5f,1.0f,-0.5f)(2分)F(-0.5f,1.0f,-1.5f)(2分)H(0.5f,1.0f,-0.5f)(2分)2.已知在平面P上有两条向量v1和v2他们的值分别(2.0f,0.0f,0.0f),(0.0f,3.0f,0.0f)求出垂直与平面P的法向量v3的值为多少,求出v1与v2之间的夹角θ的度数或cos值为多少?要求写出计算过程。向量的模222||zyxV向量的倍乘),,(azayaxaV向量之和),,(21212121zzyyxxVV向量的点积21212121zzyyxxVV向量的叉积),,(21122112211221yxyxxzxzzyzyVV答:v3=v1与v2叉积或v1×v2(3分)v3=(y1z2–y2z1,z1x2–z2x1,x1y2–x2y1)v3=(0.0f,0.0f,6.0f)(2分)转换单位向量v3=(0.0f,0.0f,1.0f)cosθ=v1与v2单位向量的点积或v1·v2(2分)v1的单位向量=(1.0f,0.0f,0.0f)(1分)v2的单位向量=(0.0f,1.0f,0.0f)(1分)cosθ=x1x2+y1y2+z1z2;cosθ=1.0f*0.0f+0.0f*1.0f+0.0f*0.0f;cosθ=0(1分)θ=90°3.已知空间中一条线段的两个顶点为d1(5.0f,3.0f,-2.0f)d2(6.0f,4.0f,-2.0f)计算出其绕(y=3,z=0)的轴旋转90°后再缩小0.5倍后的新的线段的两个顶点坐标,要求写出每一个计算后得到的新矩阵。平移矩阵=1000100010001zyxttt缩放矩阵=1000000000000zyxsss旋转矩阵绕x轴=10000cossin00sincos00001绕y轴=10000cos0sin00100sin0cos绕z轴=1000010000cossin00sincos答:缩小0.5矩阵A=100000.500000.500000.5(1分)沿Y轴平移3矩阵B=1000010030100001(1分)绕X旋转90度矩阵C=1000001001000001(1分)沿Y轴平移-3矩阵D=1000010030100001(1分)AxB=100005.0005.105.000005.0(2分)AxBxC=1000005.005.15.0000005.0(1分)M=AxBxCxD=10005.105.005.15.0000005.0(1分)d1转换后=Mxd1=(2.5f,2.5f,0.0f)(1分)d2转换后=Mxd2=(3.0f,2.5f,0.5f)(1分)4.分别使用数值微分法(DDA算法)、中点画线法和Bresenham算法计算出P0(1,1)和P1(3,6)之间扫描过的点。中点画线法addbaddbad*20)(*20*2Bresenham算法xyxdeedede*2,0*2,再减少如果答:数值微分法(DDA算法)斜率5.21316-0101xxyyk由于斜率大于1增量4.011kxy,(2分)yint(x+0.5)x+0.5111211.4+0.5321.8+0.5422.2+0.5532.6+0.5633.0+0.5表头2分其他每行1分中点画线法斜率5.21316-0101xxyyk由于斜率大于10110,yybxxa(4分)yxd11121-332342-153563数据每行1分Bresenham算法斜率5.21316-0101xxyyk由于斜率大于10101,xxdyydyx(4分)yxe11-121332-342153-563数据每行1分5.使用中点画圆算法计算出以点(4,6)为圆心,半径为8的圆的1/8圆弧点坐标。中点画圆法11102*1102()1ddxdrddxy答:xydx+4y+608-741418-451428161437-6713473813562912651012表头1分前3行数据2分后面每行1分6.使用中点椭圆算法计算出以点(4,6)为圆心,半径rx=6,ry=8的椭圆的1/4圆弧点在区域1内的坐标。切线斜率为22yxrxry区域1:221222222110210224yyyxyxyyxddrxrdrrrrddrxrry答:区域1判断条件2yrx2xry(1分)xydx+4y+608-21541418-23514282976143724171346812数据前4行每行2分最后1行1分7.使用中点椭圆算法计算出以点(4,6)为圆心,半径rx=8,ry=6的椭圆的1/4圆弧点坐标。切线斜率为22yxrxry,区域2的起始点为(4,6)区域2:2212222220022211021()(1)0222xxyxxyyxxddrxrdrxryrrddrxryr答:xydx+4y+646-1088125520891154-4491063544109624361086140010760106数据前3行每行2分后面每行1分8.已知如下多边形,使用扫描线算法求出该多边形的活性边表。00xaabx时当保存小数点后1位答:活性边表扫描线:Y=5:67.07.121PP-65.15.032PP-65.15.343PP-62.08.454PPY=4:67.03.221PP-65.10.232PP-65.10.243PP-62.06.454PPY=3:67.00.321PP-62.04.454PPY=2:35.05.216PP-62.02.454PPY=1:35.00.216PP-454.00.26PP每条扫描线2分9.已知直线段的两点(-200,-100)和(700,600)分别使用Cohen-Sutherland和梁友栋-BarSky算法计算对于区域(0,0,500,600)裁剪后的直线段,要求写出计算过程。答:Cohen-Sutherland算法:裁剪顺序为上下右左,区域编码如下:(2分)100110000001010100000100101000100110令x0=-200y0=-100x1=700y1=600c1=code(x0,y0)=0101c2=code(x1,y1)=0010(1分)裁剪下边后y0=0x0=myyx00=)200(700)100(600)100(0200=-71c1=0001(2分)裁剪右边后x1=500y1=)(00xxmy=))200(500()200(700)100(600100=444c2=0000(2分)裁剪左边后x0=0y0=)(00xxmy=))200(0()200(700)100(600100=56c1=0000(2分)裁剪后的线段为(0,56)(500,444)(1分)梁友栋-Barskey裁剪算法:u1=0u2=1p1=-dxq1=x0–0p1=-900q1=-200u=2/9u1=2/9u2=1(2分)p2=dxq2=500-x0p2=900q2=700u=7/9u1=2/9u2=7/9(2分)p3=-dyq4=y0–0p3=-700q3=-100u=1/7u1=2/9u2=7/9(2分)p4=dyq4=600–y0p4=700q4=700u=1u1=2/9u2=7/9(2分)裁剪后的线段为(x0+u1*dx,y0+u1*dy)(x0+u2*dx,y0+u2*dy)(1分)(-200+2/9*900,-100+2/9*700)(-200+7/9*900,-100+7/9*700)裁剪后的线段为(0,56)(500,444)(1分)10.已知如下多边形进行区域裁剪,若安装p1-p6顺序遍历多边形的各条边,按顺序写出该多边形裁剪的处理线段及保留的顶点。答:处理线段P1P2输出AB(2分)处理线段P2P3输出CP3(1分)处理线段P3P4输出D(1分)处理线段P4P5输出EP5(2分)处理线段P5P6输出F(1分)处理线段P6P7输出GP7(2分)处理线段P7P1输出H(1分)11.已知空间中一点的颜色由3层纹理融合而成,最上层点的颜色值(RGBA)为(255,200,100,100),中间夹层点的颜色值为(0,0,255,80),背景色的颜色值为(100,100,100,200)计算出该点的最终颜色值为多少?答:第一次融合)1(12112ARARR)2551001(0255100255(1分))1(12112AGAGG)2551001(0255100200(1分))1(12112ABABB)2551001(255255100100(1分)融合后颜色值为(100,78,194,80)第二次融合)1(23223ARARR)255801(10025580100(1分))1(23223AGAGG)255801(1002558078(1分))1(23233ABABB)255801(10025580194(1分)融合后颜色值为(100,93,129,200)第三次融合333RRA255200100(1分)333GGA25520093(1分)333BBA255200129(1分)最终颜色值为(78,72,101)(1分)
本文标题:计算机图形学计算题
链接地址:https://www.777doc.com/doc-7319692 .html