- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形学复习题 (dhw)
1. 设由5 个顶点V1,V2,V3,V4,V5 依次构成一个平面多边形P, 顶点用struct Point3D{floatx,y,z;}类型的变量表示,请写出绘制该多边形的的OpenGL代码片段。
答:
glBegin (GL_POLYGON);
glVertex3f(V1.x,V1.y,V1.z);
glVertex3f(V2.x,V2.y,V2.z);
glVertex3f(V3.x,V3.y,V3.z);
glVertex3f(V4.x,V4.y,V4.z);
glVertex3f(V5.x,V5.y,V5.z);
glEnd();
2. 设一个显示屏幕的分辨率是1024*768,而屏幕上每个像素的颜色由(r,g,b,a)构成,其中每个成员成为占据8位,问一个颜色Frame Buffer 至少占用多少字节的显存?
答:显存容量=显示分辨率×颜色位数/8bit=1024*768*4*8/8=3MB
3. 什么叫扫描转换(Scan)?叙述
1)扫描转换线段的中点算法的原理。
2)扫描转换多边形的扫描线算法的原理。
答:扫描转换是指完成从图元的参数表示形式(由图形软件包的使用人员指定)到点阵表示形式(光栅显示系统刷新时所需的表示形式)的转换。
1)中点算法原理:
假定直线斜率0k1,且已确定点亮像素点P(xp,yp),则下一个与直线最接近的像素只能是P1点或P2点。设M为中点,Q为交点。
构造判别式:d=F(M)=F(xp+1,yp+0.5) =a(xp+1)+b(yp+0.5)+c
当M在Q的下方,P2离直线更近,取P2 ;
当M在Q的上方,P1离直线更近,取P1 ;
当M与Q重合, P1、P2任取一点。
假设直线方程为:ax+by+c=0
其中a=y0-y1, b=x1-x0, c=x0y1-x1y0
由常识知:
所以欲判断M点是在Q点上方还是在Q点下方,只需把M代入F(x,y),并检查它的符号。
若d(0,M在直线上方,取P1;此时再下一个像素的判别式为
d1=F(xp+2, yp+0.5)=a(xp+2)+b(yp+0.5)+c
= a(xp +1)+b(yp +0.5)+c +a =d+a; 增量为a
若d0,M在直线下方,取P2;此时再下一个像素的判别式为
d2= F(xp+2, yp+1.5)=a(xp+2)+b(yp+1.5)+c
= a(xp +1)+b(yp +0.5)+c +a +b =d+a+b;增量为a+b
画线从(x0, y0)开始,d的初值
d0=F(x0+1, y0+0.5)= a(x0 +1)+b(y0 +0.5)+c= F(x0, y0)+a+0.5b =a+0.5b
由于只用d 的符号作判断,为了只包含整数运算, 可以用2d代替d来摆脱小数,提高效率。
2)多边形的扫描线算法:
基本原理:一条扫描线与多边形的边有偶数个交点
找到多边形额最小y值和最大y值,然后用范围内的每一条水平线与多边形相交再绘制线段。
步骤(对于每一条扫描线):
(1)求交点
(2)交点排序
(3)交点配对,填充区段。
边的连贯性:
第一类交点:新出现的边与扫描线的交点
第二类交点:位于同一条边上的后继交点
边的分类表(ET)
按照边的下端点y坐标对非水平边进行分类的指针数组,下端点y坐标值等于i的边属于第i类。
边的分类表的作用是避免盲目求交。当处理一条扫描线时,为了求出它与多边形边的所有交点,必须将它与所有的边进行求交测试。而实际上只有某几条边与该扫描线有交点。边的分类表正是用来排除不必要的求交测试的。
活性边:与当前扫描线相交的边。按交点x的增量顺序存放在一个链表中;该链表称作活性边表(AEL)。
typedef struct {int ymax;
float x,deltax;
Edge *nextEdge;
}Edge;
AEL 与ET的结点信息:
ymax:所交边的最高扫描线号
x:当前扫描线与边的交点的x坐标
△x:边的斜率的倒数
4. 一个线段的两个端点的坐标分别是(1,2)和(7,5),请给出
1) 用DDA算法扫描转换的过程描述
2) 用中点算法扫描转换的过程描述
答:(1)DDA算法:
原理:
假定直线的起点、终点分别为:(x0,y0), (x1,y1),且都为整数。
基本思想
已知过端点P0 (x0, y0), P1(x1, y1)的直线段L:y=kx+b,
则直线斜率为
计算yi+1= kxi+1+b= kxi+b+k(x= yi+k(x
当(x =1; yi+1 = yi+k
即:当x每
您可能关注的文档
最近下载
- 部编人教版八年级上册道德与法治全册教学设计(配2025年秋改版教材).docx
- 关于开展招投标领域问题专项整治的实施方案.docx
- 机器人工程专业未来就业岗位及发展前景分析报告.docx VIP
- 慢性阻塞性肺疾病健康教育培训课件.pptx VIP
- 消毒记录登记表.docx VIP
- 高中英语“深度学习”策略在外语听说教学中的实践研究教学研究课题报告.docx
- 2024-2025学年小学信息技术(信息科技)四年级上册湘科版(2024)教学设计合集.docx
- (统编2024版)道德与法治三年级上册 第2课 我学习 我快乐 课件(共2课时).pptx
- 智能制造工程专业未来就业岗位及发展前景分析报告.docx VIP
- 2025年中国澳洲淡水龙虾市场调查研究报告.docx
文档评论(0)