中南大学计算机图形学2015年计科.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2 3 2 3 中南大学考试试卷 2014 -- 2015  学年 2 学期  时间 100 分钟  2015 年 6 月 29 日 计算机图形学 课程 32 学时 2 学分 考试形式: 开 卷 专业年级: 计算机 12 级  总分 100 分,占总评成绩 70 % 注:此页不作答题纸,请将答案写在答题纸上 一、计算题(本题 20 分,共 2 小题) 1、有一条三次 Bezier 曲线,其控制点依次为 P0(1,1),P1(3,2),P3(0,2),P4(2,1),试写出其以 t:t∈[0,1]为参数的多项式表达式,并图示其形状。该曲线是否能用以 y(x)形式的单一函数表达? 为什么?(本题 10 分) 答: x(t) = 1+6t-15t +10t y(t) = 1+3t-3t 2 (6 分) 作图(2 分) 不能,因为非一一映射。(2 分) 2、有一三角形 ABC,其三个顶点矢量按逆时针顺序为 A,B,C,相应地,三个顶点的纹理坐 标为 t0,t1,t2,有三角形内一点 P,其位置矢量为 P,求点 P 的线性纹理坐标插值。(本题 10 分) 答: 设点 P 的重心坐标为: P = A + u * (C – A) + v * (B - A) 整理方程得: P – A = u(C - A) + v(B - A) (2 分) (1 分) 令 v0 = C – A, v1 = B – A, v2 = P – A,则 v2 = u * v0 + v * v1 (1 分) 将等式两边分别点乘 v0 和 v1 得 (v2) ? v0 = (u * v0 + v * v1) ? v0 (v2) ? v1 = (u * v0 + v * v1) ? v1 (2 分) 解方程组得: = ((v1?v1)(v2?v0)-(v1?v0)(v2?v1)) / ((v0?v0)(v1?v1) - (v0?v1)(v1?v0)) = ((v0?v0)(v2?v1)-(v0?v1)(v2?v0)) / ((v0?v0)(v1?v1) - (v0?v1)(v1?v0)) (2 分) 点 P 的纹理坐标为: t0 + u*(t1-t0) + v*(t2-t0); u,v 由上式可得; (2 分) 二、程序作答题(本题 50 分,共 4 小题) 1、如图 1 所示,有一用半边结构表示的网格,给出指向网格中一条半边 e 的指针 pe,e 指 向顶点 v,试写出遍历顶点 v 一环邻域顶点的 C 语言代码。(本题 15 分) 图 1 可调用函数: void visitVertex(Vertex* pv);//访问 pv 指向的顶点 答: HalfEdge* p = pe; do{ visitVertex(p-end); p=p-next-opp; }while(p!=pe); 程序正确 12 分; 代码规范 3 分; 2、现需要在 OpenGL 中绘制一个底面半径为 r,高为 h 的圆锥,底面在 x-z 平面上,底面中 心在原点处,圆锥尖顶在坐标(0,h,0)处,请在下面空白处填写绘制代码(提示:用三角 形逼近)。(本题 15 分) glBegin(GL_TRIANGLES); //TODO:draw the cone glEnd(); 可调用函数和常量: float cos(float theta);//计算角度 theta 的余弦值,角度用辐度表示; float sin(float theta);//计算角度 theta 的正弦值,角度用辐度表示; #define PIE 3.14159; 答: int num = 100; int steps =2*PIE/float(num); for(int i=0; inum; i++) { //the bottom glVertex3f(r*cos(i*steps), 0.0f, r*sin(i*steps)); glVertex3f(r*cos((i+1)*steps), 0.0f, r*sin((i+1)*steps)); glVertex3f(0.0f, 0.0f, 0.0f); //the wall glVertex3f(r*cos((i+1)*steps), 0.0f, r*sin((i+1)*steps)); glVertex3f(r*cos(i*steps), 0.0f, r*sin(i*steps)); glVertex3f(0.0f, 0.0f, 0.0f); } 循环 3 分; 三角形顶点数值 5 分; 三角形顶点顺序 5 分; 代码规范 2 分; 3、给定一个有 n 个顶点的二维多边形,其顶点矢量(三维)按逆时针顺序排列为 v[0],v[1], v[2],...,v[n-1

文档评论(0)

damoyihao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档