计算机图形学复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
一、什么是计算机图形学?
计算机图形学是研究如何利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科。
国际标准化组织(ISO)定义:
计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科
电气与电子工程协会(IEEE)定义:
计算机图形学是利用计算机产生图形化的图像的艺术和学科。
三、举例说明计算机图形学有哪些应用,分别用来解决什么实际问题?
应用领域:
1.计算机辅助设计与制造(CAD,CAM)
用于大楼,汽车,飞机,建筑工程,电子路线等的设计和制作过程中。
2.计算机辅助绘图
计算机辅助绘图的典型例子包括计算机可视化,近年来,这种技术已用于有限元分析的后处理,分子模型构造,地震数据处理,大气科学,生物信息及生物化学等领域。
3.计算机辅助教学(CAI)
4.办公自动化和电子出版社
5.计算机艺术
6.在工业控制及交通方面的应用
7.在医疗卫生方面的应用
8.图形用户界面
四、人机交互,什么是一致性原则
人机交互学是一门关于设计、评估和执行交互式计算机系统以及研究由此而发生的相关现象的学科。
一致性原则:指在设计系统的各个环节时,应遵从统一的、简单的规则,保证不出现例外和特殊的情况,无论是信息显示还是命令输入都应如此
一致性原则包含这样一些内容:1.一个特定的图符应该始终只有一个含义而不能依靠上下文来代表多个动作或对象;2.菜单总是放在相同的关联位置,使用户不必总是去寻找;3.键盘上的功能键,控制键以及鼠标上的按钮的定义需要前后一致;4.总是使用一种彩色编码,使相同的颜色在不同的情况下不会有不同的含义;5.输入时交互式命令和语法的一致性等
第二章
四、CRT的组成和工作原理是什么?
CRT(Cathode Ray Tube)阴极射线管
✓是一种真空器件,它利用电磁场产生高速的、经过聚焦的电子束,偏转到屏幕的不
同位置,轰击屏幕表面的荧光材料而产生可见图形
CRT组成:
✓电子枪、聚焦系统、加速电极、偏转系统、荧光屏
CRT工作原理:
⏹电子枪发射电子束
⏹电子束经过聚焦系统、加速电极、偏转系统,射向荧光屏的指定位置;
⏹荧光屏被电子轰击到的部位发出光点;
分辨率
是指在原稿的单位长度(英寸)上取样的点数,单位是dpi。
六、光栅扫描显示器的工作原理与特点
⏹电子束横向扫描屏幕,从左到右,从上至下;
⏹扫描过程中按要显示的图形,点亮或熄灭屏幕上的光点;
⏹电子束的强度不同,光点明暗程度也不同
优点:
§图形描述精确到每个像素,显示图形质量高;
§可以表现丰富的色彩信息;
§可以显示真实感的图形、视频、动画等
§制造成本低,价格相对便宜
缺点:
§绘制线段时,会产生锯齿状,即“走样”;
§可以通过“反走样技术”进行弥补和改善
七、OpenGL的主要功能
1.模型绘制
2.模型观察
3.颜色模式(RGBA模式和颜色索引模式)
4.光照应用
5.图像效果增强
6.位图和图像处理
7.纹理映射
8.实时动画
9.交互技术
#include<windows.h>
#include<gl/gl.h>
#include<gl/glu.h>
一、DDA算法
void LineDDA(int x0,int y0,int x1,int y1,int color)
{
int dx,dy,epsl,k;
float x,y,xIncre,yIncre;
dx=x1-x0;
dy=y1-y0;
k=dy/dx;
if(abs(dx)>abs(dy))
epsl=abs(dx);
else
epsl=abs(dy);
xIncre=(float)dx/(float)epsl;
yIncre=(float)dy/(float)epsl;
for(k=0;k<=epsl;k++){
Putpixel(int(x+0.5),(int)(y+0.5));
x+=xIncre;
y+=yIncre;
}
}
二、中点Bresenham画圆算法
void MidBresenhamCircle(int r,int color){
int x,y,d;
x=0;y=r;d=1-r;
while(x<=y){
CirclePoint(x,y,color);
if(d<0)d+=2*x+3;
else{
d+=2*(x-y)+5;
y--;
}
x++;
}
}
平移变换: 1 0 0
[x’y’1]=[x y 1] 0 1 0 =[x+T x y+T y 1]
T x T y 1
比例变换:S x 0 0
[x’y’1]=[x y 1] 0 S y 0 =[x S x y S y 1]
0 0 1
旋转变换:
逆时针旋转:
cos a sin a0
[x’y’1]=[x y 1] —sin a cos a0
0 0 1
=[xcos a-ysin a xsin a+ycos a 1]
顺时针旋转:
cos-a sin-a0
[x’y’1]=[x y 1] —sin-a cos-a0
0 0 1
=[xcos a+ysin a -xsin a+ycos a 1]
错切变换:变换矩阵中非对角线元素不为0,起着把图形沿X方向或Y方向错切的作用,x值或y值越小,错切量越小,反之越大。
直线的裁剪:
Cohen-Sutherland算法:
若x<X wl,则D0=1,否则D0=0;
若x>X wr,则D1=1,否则D1=0;
若y<Y wb,则D2=1,否则D2=0;
若y>Y wt,则D3=1,否则D3=0;
1、目前常用的PC图形显示子系统主要由3个部件组成:帧缓冲存储器、显示控制器、ROM BIOS。
简答题
1、什么叫做走样?什么叫做反走样?反走样技术包括那些?
答:走样指的是用离散量表示连续量引起的失真。
为了提高图形的显示质量。
需要减少或消除因走样带来的阶梯形或闪烁
效果,用于减少或消除这种效果的方法称为反走样。
其方法是①前滤波,以较高的分辨率显示对象;②后滤波,即加权区域取样,在高于显示分辨率的较高分辨率下用点取样方法计算,然后对几个像素的属性进
行平均得到较低分辨率下的像素属性
2.用参数方程形式描述曲线曲面有什么优点?
答:①点动成线;②可以满足几何不变性的要求;③可以避免斜率带来的问题;④易于定界;⑤可以节省工作量;⑥参数变化对各因变量的影响明显。
四、利用中点Bresenham画圆算法的原理推导第一象限从y=x到x=0
圆弧段的扫描转换算法(要求写清原理、误差函数、递推公式)。
(10
分)
解:x方向为最大走步方向,xi+1=xi-1,yi+1由d确定
di=F(xm,ym)=(xi-1)^2+(yi+0.5)^2-R2
⑴di <0时,点在圆内,xi+1=xi-1, yi+1= yi+0.5
di+1=F(xm,ym)= (xi-2)^2+(yi+1.5)^2-R2
=xi^2-4xi+4+yi^2+3yi+1.5^2-R2
=(xi-1)^2-2xi+3+(yi+0.5)^2+2yi+2-R2
= di -2xi+2yi+5
= di +2(yi-xi)+5
⑵di≥0时,点在圆外,xi+1=xi-1,yi+1=yi
di+1=F(xm,ym)=(xi-2)^2+(yi+0.5)^2-R2
=xi^2-4xi+4+(yi+0.5)^2-R2
= di -2xi+3
3、Bezier曲线在端点处的一阶导数为:p’(0)=n(P1-P0),p’(1)=n(Pn-Pn-1),
二阶导数为:
p”(0)=n(n-1)((P2-P1)-(P1-P0)),p”(1)=n(n-1)((Pn-2-Pn-1)-(Pn-1-Pn))。
写出如图2所示的两段三次Bezier曲线在连接点处的G1,G2连续性条件。
答:因为是三次Bezier曲线,所以有n=3。
根据G1连续性条件有:p’(1)=a* p’(0)即:Q1-Q0= a*(P3-P2)
又根据G2连续性条件有:
p”(1)=b*p”(0)即:Q0-2Q1+Q2=b*(P1-2P2+P3)
七、(本题15分)如图所示四边形ABCD ,求绕P (5,4)点逆时针旋转90度的变换 矩阵,并求出各端点坐标,画出变换后的图形
五、编程及分析题(本大题共1小题,每题10分,共10分),
1. 请根据中点圆生成算法思想,对圆x 2+y 2=R 2,推出第一象限中从y=0到y=x 这段弧
的生成算法。
要求推导出主要的计算公式,并写出算法(描述性算法)。
提示这一
段上,y 的变换率比x 大。
解答:
构造函数F(X,Y)=Y 2+X 2-R 2。
对于圆上的点, F(X,Y)=0;
对于圆外的点, F(X,Y)>0;
而对于圆内的点,F(X,Y)<0。
1) 当前点为(Xi, Yi ),下一个代定点为(X i-1,Y i+1),以Y 每次增加1, Y i+1= Yi +1,
X i-1需要判定。
⎥⎥⎥⎦⎤⎢
⎢⎢⎣⎡•⎥⎥⎥⎦⎤⎢⎢
⎢⎣⎡-•⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=145010001100090cos 90sin 090sin 90cos 145010001οοοοT ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=119001010⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--•⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡110652166138119001010114717137114
中点M的坐标为:M(,Xi-0.5, Yi +1)
当F(XM, YM)<=0时,取Pu(Xi,Yi +1,)
当F(XM, YM)>0时,取Pd(Xi-1,Yi +1,)
2)决策参数:
d=F(XM,YM)=F(Xi-0.5,Yi+1)=(xi-0.5)2+(yi+1)2-R2
当d≤0时,下一点取Pu(Xi,Yi +1);
当d>0时,下一点取Pd(Xi-1,Yi +1)。
决策参数的增量式
当d≤0时,下一点取Pu(Xi,Yi +1)
di+1=F(Xi-0.5,Yi+2)=di+2Yi+3
当d>0时,下一点取Pd(Xi-1,Yi +1)
di+1=F(Xi-1.5,Yi+2)=di+2(Yi-Xi)+5
判别式的初始值
d0=F(R-0.5,1)=1.25-R
算法步骤:
1.输入圆的半径R。
2.计算初始值d=1.25-R、Y=0、X=R。
3.绘制点(X,Y)及其在八分圆中的另外七个对称点。
4.判断d的符号。
若d≤0,则先将d更新为d+2Y+3,再将(X,Y)更新为(X, Y+1);否则
先将d更新为d+2(Y-X)+5,再将(X,Y)更新为(X-1, Y+1)。
5.当Y<X时,重复步骤3和4。
否则结束。