延安大学
计算机图形学期末作业
学号: 1060414014016 姓名:秦红志 班级:信息14 学期:2017.3-2017-7
1. 简述彩色光栅扫描显示器的工作原理,并说明显示器能显示的彩色颜色个数与显存大小之间的关系。 答:
(1)工作原理:光栅扫描显示器是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的亮度。其基本结构由三部分组成:显示器、图形控制器和缓存寄存器。
光栅扫描将CRT屏幕分成由像素构成的光栅网格,其中的每个像素点都具有灰度和颜色,所有像素的灰度和颜色信息保存在一个专门的内存区域中,简称帧缓存。CRT中的水平和垂直偏转线圈分别产生水平和垂直磁场,电子束在不同方向磁场力作用下从左向右,从上向下扫描荧光屏,产生一幅幅光栅,并由显示内容控制所扫描的像素点是否发亮,从而形成具有多种彩色及多种明暗度的图像。
(2)关系:显示器颜色的数目和一帧画面可同时显示的颜色数,与荧光屏的质量有关,并受显示存储器容量的影响。
设分辨率为m×n、颜色数为K,显存大小为V:
V?m?n?log2Kbit
2. 使用中点画圆法绘制一个椭圆,椭圆的相关参数自己决定
x2y2答:(1)核心思想:由椭圆的方程:2?2?1可得其隐函数形式:
abF(x,y)?b2x2?a2y2?a2b2
由椭圆的4对称性,以一象限椭圆弧为例。
圆弧分上下两部分,以弧上斜率为-1的点(法向两个分量相等的点分界点)作为分界点。由几何知识可推导出分界点所在法向量分量满足关系式2b2x=2a2y。
在分界点的上半部法向量的y分量更大;在下部分,法向量的x分量更大。 因而可得出,在上部分(xp,yp)的中点,有x,y法向量分量关系如下:
b2(xp+1)
从而该关系式可作为算法中判断当前点处于上下部分的依据。
与圆中点算法类似:在确定一个像素点后,接着代入两个候选像素点的中点坐标值与椭圆隐函数中,由隐函数的正负,来最终确定选取的像素点。
①设椭圆上一确定点(0,b),即椭圆与y轴交点。其下一候选元素点中点为(1,b-0.5)。将之代入椭圆隐函数内可得
d1=b2+a2(0.25-b)
该式作为算法中的初始判断条件,确定下一点的坐标值。
②当d1<0,表明中点在椭圆内,则取确定点正右侧像素点即(1,b); 则以该点为初始点,重复①的过程,得到
d2=d1+b2 (2xp+3)
当d1≥0,表明中点在椭圆外,则取确定点右下方像素点即(1,b-1); 则以该点为初始点,重复①的过程,得到
d2=d1+b2 (2xp+3)+a2 (-2yp+2)
不断重复上述过程,每次x坐标增加1像素,得到相应y的取值。即可画出椭圆的上半部分曲线。当x,y的取值不满足判别式(*)时,此时y的增量小于x的增量,故迭代过程变为y每次变化1像素。
同理。由上述循环结束可得到分界点的坐标,由分解点坐标开始。代入下一像素点的中点坐标于椭圆隐函数中,进行判断从而确定x的取值。
d1<0时,d2= d1+ b2 (2xp+2)+a2 (-2yp+3) d1≥0时,d2= d1+ a2 (-2yp+3)
当y=0时,算法结束。则最终确定了一象限的一段椭圆圆弧。再由坐标关系变换,补充算法描点,即可得到一个有中点圆算法画出的椭圆。
(2)程序运行截图:
(3)算法源代码:
inta,b; a=200,b=100; int x0,y0; x0=300,y0=200; intx,y; x=0,y=b;
double d=b*b+a*a*(0.25-b);
for(x=0;x<=a;x++) {
if(2*b*b*(x+1)<2*a*a*(y-0.5)) {
pDC->SetPixel(x+x0,y+y0,RGB(255,0,0)); pDC->SetPixel(x+x0,-y+y0,RGB(0,255,0)); pDC->SetPixel(-x+x0,y+y0,RGB(0,0,255)); pDC->SetPixel(-x+x0,-y+y0,RGB(255,255,0)); if(d<0) {
d=d+b*b*(2*x+3); } else {
d=d+b*b*(2*x+3)+a*a*(-2*y+2); y--; } } else {
break; } }
for(;y>=0;y--) {
pDC->SetPixel(x+x0,y+y0,RGB(0,0,255)); pDC->SetPixel(x+x0,-y+y0,RGB(0,0,255)); pDC->SetPixel(-x+x0,y+y0,RGB(0,0,255)); pDC->SetPixel(-x+x0,-y+y0,RGB(255,0,255)); d=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b; if(d<0) {
d=d+b*b*(2*x+2)+a*a*(-2*y+3); x++; }
else {
d=d+a*a*(-2*y+3); }
}
3. 多边形填充的有效边表法,多边形的相关参数自己决定。 答:
(1)核心思想:
①先计算一些特殊的交点:如果某个边的最低点是ymin,那么这个边与扫描线y=ymin一定相交,且x坐标就是顶点的坐标x。
②然后根据边的连贯性,按从下到上的顺序,使用增量法计算各条扫描线与边的交点序列。
③根据交点的配对原则,判断位于多边形内部的区段。 ④对位于多边形内的直线段进行着色。 (2)程序运行截图:
(3)算法源代码: 添加头文件、命名空间
structEdgeNode{
double x; double dx; intymax; };
#include #include
构造函数
bool operator <(EdgeNode a, EdgeNode b) {
if(a.x return true; else 搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新医药卫生计算机图形学大作业 全文阅读和word下载服务。
相关推荐: