计算机图形学(直线的扫描转换I)
- 格式:ppt
- 大小:1.85 MB
- 文档页数:31
计算机科学技术:计算机图形学题库三1、名词解释扫描转换答案:在矢量图形中,多边形用顶点序列来表示,为了在光栅显示器或打印机等设备上显示多边形,必须把它转换为点阵表示。
这种转换称为扫描转换。
2、单选下面对光栅扫描图形显示器描述正确的是()A.荧光粉涂层均匀离散分布;B.是一种点画设备;C.电子束从顶到底扫描;D.通过控制电子束的强弱实现色彩的强弱;答案:A3、填空题计算机图形系统由()系统和软件系统组成。
答案:硬件4、填空题在处理图形时常常涉及的坐标系有模型坐标系(),世界坐标系,观察坐标系,设备坐标系。
答案:局部坐标系5、单选计算机图形学与计算机图象学的关系是()。
A.计算机图形学是基础,计算机图象学是其发展B.不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分C.同一学科在不同场合的不同称呼而已D.完全不同的学科,两者毫不相干答案:B6、问答题简述中点分割法进行裁剪的过程?答案:中点分割剪取法,主要是对线段不断地进行对分,并排除在区域外的部分,找出线段落在窗口内的部分。
其方法主要是通过求出离线段的一个端点最近并且在区域内的点的方法,来确定线段落在窗口内的端点。
7、问答题局部光照模型和全局光照模型的不同之处是什么?答案:局部光照模型主要是考虑光源发出的光对物体的直接影响。
另外,全局光照模型除了处理光源发出的光之外,还考虑其他辅助光的影响,如光线穿过透明或半透明物体,以及光线从一个物体表面反射到另一个表面等。
8、判断题彩色阴极射线管主要是由红绿蓝三个彩色电子束的亮度不同,进而组合形成各种色彩的。
答案:错9、问答题什么叫做走样?什么叫做反走样?反走样技术包括那些?答案:走样指的是用离散量表示连续量引起的失真。
为了提高图形的显示质量。
需要减少或消除因走样带来的阶梯形或闪烁效果,用于减少或消除这种效果的方法称为反走样。
其方法是①前滤波,以较高的分辨率显示对象;②后滤波,即加权区域取样,在高于显示分辨率的较高分辨率下用点取样方法计算,然后对几个像素的属性进行平均得到较低分辨率下的像素属性。
光栅图形学(⼀):直线段的扫描转换算法前⾔ 在数学上,理想的直线是没有宽度的,它是由⽆数个点构成的集合。
对直线进⾏光栅化时,只能在显⽰器说给定的有限个像素组成的矩阵中,确定最佳逼近于该直线的⼀组像素,并且按扫描线顺序。
本节介绍绘制线宽为⼀个像素的直线的三个常⽤算法:数值微分,中点画线和Bresenham算法。
数值微分法 已知过端点 P0(x0, y0),P1(x1, y1) 的直线段 L(P0, P1);直线斜率为 k = (y1 - y0) / (x1 - x0)。
于是 y i+1 = kx i+1 + b。
于是,x每增加1,y就增加k。
画点的时候还需要判断int(y+0.5)向下取整。
1// 数值微分法,伪代码2void DDAline(int x0, int y0, int x1, int y1) {3int dx, dy, x=x0, y=y0;4double k;5 dx = x0 - x1; dy = y0 - y1;6 k = dy / dx;7 draw(x, y)8while (x <= x1) {9 x += 1;10 y += k;11 draw(x, int(y+0.5));12 }13 } 效果图如下(0,1)(5, 4):中点画线法 假设线段 F(M) = ax + by + c = 0。
(a=y0-y1; b=x1-x0; c=x0y1-x1y0)。
中点画线法的思想就是对于点(x p,y p)的下⼀个点 M(x p+1,y+0.5),拿这个中点和实际点⽐较,如果实际点在中点上⽅(F(M) <0),则取(xp+1,yp+1)为下⼀个点。
如果实际点在中点下⽅(即中点代⼊直线⽅程的值⼤于0,F(M) >= 0),则取(xp+1, yp)。
为了加速计算,我们通常采⽤增量的⽅法。
假设从(x p,y p)开始画线,d的初值d0 = F(x0+1, y0+0.5)= F(x0,y0)+a+0.5。
图形学实验--直线扫描转换算法实现(DDA)实验一算法//采用了DDA算法//画直线时通过鼠标点击两点确定起点和终点#include#include#include#include"windows.h"#include"gl/gl.h"#include"gl/glu.h"#include"gl/glaux.h"#include"stdlib.h"struct GLintPoint{GLint x;GLint y;};GLintPoint p[2];bool sig=false;int scrw=640,scrh=480;void drawline(){int dx=p[1].x-p[0].x,dy=p[1].y-p[0].y;int steps, k;float xIncrement, yIncrement, x = p[0].x, y = p[0].y; // 初始化if (fabs(dx) > fabs(dy)){steps = fabs(dx);} // 判断定长方向else{steps = fabs(dy);}xIncrement = float(dx) / float(steps); // 计算两个方向的增量yIncrement = float(dy) / float(steps);glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0f, 0.0f, 0.0f);glBegin(GL_LINES);glVertex2i(x,y);// 绘制起点for (k = 0; k < steps; k++){x += xIncrement;y += yIncrement;glVertex2i(x,y);}glEnd();glFlush();}void myDisplay(){glClear(GL_COLOR_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);glLoadIdentity();glColor3f(0.0,0.0,1.0);if(sig)drawline();glutSwapBuffers();}void myMouse(int button,int state,int x,int y){if(button==GLUT_LEFT_BUTTON && state==GLUT_DOWN){ p[0].x=x;p[0].y=scrh-y;sig=true;}glutPostRedisplay();}//void myPassiveMotion(int x,int y)void myMotion(int x,int y){p[1].x=x;p[1].y=scrh-y;glutPostRedisplay();}int main(int argc,char **argv){glutInit(&argc,argv);glutInitWindowSize(scrw,scrh); glutInitWindowPosition(0,0);glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE); glutCreateWindow("Yangyu!");glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0,scrw,0,scrh);glMatrixMode(GL_MODELVIEW);glClearColor(0.0f,0.0f,0.0f,0.0f); glViewport(0,0,scrw,scrh); glutMouseFunc(myMouse); glutDisplayFunc(myDisplay); glutMotionFunc(myMotion); glutMainLoop();return 0;}。
名词解释:1图形的扫描转换:确定最佳逼近图形的象素集合,并用指定的颜色和灰度设置象素的过程称为图形的扫描转换或光栅化。
2区域填充:区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。
3图形:通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成, 强调场景的几何表示,由场景的几何模型和景物的物理属性共同组成。
4直线的扫描转换:当我们对直线进行光栅化时,需要在显示器有限个象素中,确定最佳逼近该直线的一组象素,并且按扫描线顺序,对这些象素进行写操作,这个过程称为用显示器绘制直线或直线的扫描转换。
5剪裁:确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形的选择过程称为裁剪。
6计算机图形学:计算机图形学是研究怎样用数字计算机生成、处理和显示图形的一门学科。
7种子填充算法:根据已知多边形区域内部的一个象素点来找到区域内其它象素点,从而对多边形区域内部进行填充。
8走样:在光栅显示设备上,由于象素点和象素点之间是离散的,因此用象素点阵组合出的图形,与真实景物之间必然存在一定的误差。
比如,直线或曲线往往呈现锯齿状,细小物体在图上显示不出来等。
这种现象就是图形的走样9CRT:一种真空器件,它利用电磁场产生高速的、经过聚焦的电子束,偏转到屏幕的不同位置轰击屏幕表面的荧光材料而产生可见图形。
10区域:是指已经表示成点阵形式的填充图形,它是像素集合。
11.图形和图象主要不同之处:在计算机图形学中,前者是指矢量表示的图,后者是指用点阵表示的图。
12.随机扫描和光栅扫描主要不同之处:前者是电子束扫描路径随图形不同而不同,后者是电子束扫描路径固定不变。
填空:1.刷新式CRT图形显示器按扫描方式分为随机扫描和光栅扫描两种。
2.屏幕上最小的发光单元叫做象素点,它的多少叫做分辨率,颜色深度指的是位平面的个数。
3.汉字字库一般可分为电阵字库和矢量字库两种。
4.在线段AB的区域编码裁剪算法中,如A、B两点的码均为零,则该线段位于窗口内;如A、B两点的码按位与不为零,则该线段在窗口外。
计算机图形学ComputerGraphics一、课程基本信息课程编号:111087适用专业:信息与计算科学专业课程性质:专业课开课单位:数学与数据科学学院学时:56(含实验学时16)学分:3.5考核方式:考试(平时成绩占总成绩的30%)先修课程:高级程序设计语言、数字图像处理、离散数学、概率论中文简介:计算机图形学是研究计算机生成、处理和显示图形的学科。
它的重要性体现在人们越来越强烈地需要和谐的人机交互环境:图形用户界面已经成为一个软件的重要组成部分,以图形的方式来表示抽象的概念或数据已经成为信息领域的一个重要发展趋势。
通过本课程的学习,使学生掌握计算机图形学的基本原理和基本方法,理解图形绘制的基本算法,学会初步图形程序设计。
二、教学目的与要求通过对本课程的教学,使学生学会分析研究计算机图形学的特性,以便为应用涉及的算法的生成、处理和显示图形。
包括掌握基于齐次坐标的二维、三维图形的几何变换原理;;基于几何造型的自由曲线、曲面的生成原理;基于分形几何学的分数维造型原理;基于图像空间和物体空间的三维物体动态原理;基于颜色模型、光照模型和纹理映射技术的真实感图形显示原理。
并初步掌握算法的分析技术。
培养学生的数据抽象能力,为今后学习打下坚实的基础。
学生学习本课程应掌握的方法与技能1、知识要求:学生通过学习该课程后主要应掌握以下内容:(1)掌握图形学的的基本原理和方法;(2)理解对各种图形数据类型的性质;(3)掌握处理各种图形学基本算法;2、素质要求学生通过学习该课程后能够运用图形的思想,针对不同模型的特性,能够选择适当的图形学算法,解决实际的问题。
3、能力要求学生通过学习该课程后能够应用一门程序设计语言进行各种图形应用系统的设计、开发及维护。
三、教学方法与手段在教学中将黑板、粉笔加教案的教学方法与多媒体教学相结合,将传统数学教学中不能直观表示的抽象概念、定理等通过图表、图像、动画等多媒体生动地表现出来,加深了学生的印象,使学生易于理解和掌握,激发学生的学习积极性,提高学生的学习兴趣;同时进行课堂提问和分组讨论,学生到黑板上做题并讲解等手段。