当前位置:文档之家› 计算机图形学1及答案

计算机图形学1及答案

计算机图形学1及答案
计算机图形学1及答案

计算机图形学作业I

一.判断题

1.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(×)

2.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;(√)

3.相似变换是刚体变换加上等比缩放变换;(√)

4.保距变换是刚体变换加上镜面反射;(√)

5.射影变换保持直线性,但不保持平行性。(×)

1.

2.

3.

4.

5.

1.

2.

3.

A.?

B.?

C.

D.

4.

A.

B.

C.沿

D.沿

5.

A.

B.平行投影的投影中心到投影面距离是无限的;

C.透视投影变换中,一组平行于投影面的线的投影产生一个灭点;

D.灭点可以看作是无限远处的一个点在投影面上的投影。

6.下列有关三维物体线框模型表示法的叙述语句中,错误的论述为(A)

A.物体线框模型由定义物体边界的直线和曲线组成,并存在面的信息;

B.三维物体线框模型可能出现二义性;

C.三维物体线框模型所构造出的形体不一定总是简单且有效的;

D.线框模型不能正确表示曲面信息。

7.下列有关边界表示法的叙述语句中,错误的论述为(C)

A.定义了物体的边界也就唯一的定义了物体的几何形状边界;

B.物体的边界上的面是有界的,而且,面的边界应是闭合的;

C.物体的边界上的面是有向的,面的法向总是指向物体的内部;

D.物体的边界上的边可以是曲线,但在两端之间不允许曲线自相交。

8.下述绕坐标原点旋转a角的坐标变换矩阵中(B)是错误。

|AB|

|CD|

??????????????A.??cosaB.sinaC.sinaD.cosa??

9.在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的(A)

A.S和P均在可见的一侧,则输出S和P.

B.S和P均在不可见的一侧,则输出0个顶点.

C.S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.

10.关于

A.

B.

C.

D.

四、简答

1.

2.

3.

4.

SRGP)完5.裁剪

落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形的选择过程称为裁剪。

6.请简述三维图形的处理流程

物体最初定义于自己的局部坐标系(模型坐标系)中,经过模型变换,以一定的形状、尺寸存在于世界坐标系的某个位置。在经过观察变换,获得物体在观察坐标系中的表示。观察坐标系中的视见体划定了可见物体所在的范围,裁剪之后剩下的物体将被投影到投影平面上的窗口之内,再由窗口到视区的变换将其变换到设备坐标系中用于显示。

7.齐次坐标

将一个原本是n维的向量用一个n+1维向量来表示。如点(x1,x2,??xn)的齐次坐标为(x1,x2,??xn,h),h=0时表示n维的无穷远点。

8. 反走样

在光栅图形显示器上显示图形时,直线段或图形边界或多或少会呈现锯齿状。原因是图形信号是连续的,而在光栅显示系统中,用来表示图形的却是一个个离散的像素。这种用离散的量(像素)表示连续的量(图形)而引起的失真,叫作走样。用于减少或消除走样的技术,就称为反走样。

9. 图像分辨率

一个CRT 在水平和竖直方向单位长度上能识别的最大光点数称为图像分辨率。

10.仿射变换

仿射变换保持两条平行直线间的平行关系,由一个线性变换接上一个平移组成,对于二维变换即:X=ax+by+e , Y=cx+dy+f

1.如图标。(10R (x,y,= ??001001= ??001001= ??-000110齐次坐标A :(B :(C :(使用2(10分)S (E ;=??????

? ??---??????? ????????? ?

?1000210020102001100002000020000210002100

20102001 =??????? ??---10002200

20202002 齐次坐标:

E:(2,2,2,1)

A:(-2,-2,-2,1)

B:(2,-2,-2,1)

C:(2,2,-2,1)

D:(-2,2,-2,1)

使用matlab进行矩阵计算

3.如右图所示的多边形,若采用改进的有效边表算法进行填充,在填充时采用“下闭上升”的原则

的边之后再填充)试画出该多边形的ET表和当扫描线Y=3和Y=8时的AET表。(即删除y=y

max

ET表

Y=3和Y=8的AET表

4

以x

5

(2)沿Y (3

(4)

计算机图形学实验一

实验一二维基本图元的生成与填充 实验目的 1.了解并掌握二维基本图元的生成算法与填充算法。 2.实现直线生成的DDA算法、中点算法和Bresenham算法。 3.实现圆和椭圆生成的DDA和中点算法, 对几种算法的优缺点有感性认识。 二.实验内容和要求 1.选择自己熟悉的任何编程语言, 建议使用VC++。 2.创建良好的用户界面,包括菜单,参数输入区域和图形显示区域。 3.实现生成直线的DDA算法、中点算法和Bresenham算法。 4.实现圆弧生成的中点算法。 5.实现多边形生成的常用算法, 如扫描线算法,边缘填充算法。 6.实现一般连通区域的基于扫描线的种子填充算法。 7.将生成算法以菜单或按钮形式集成到用户界面上。 8.直线与圆的坐标参数可以用鼠标或键盘输入。 6. 可以实现任何情形的直线和圆的生成。 实验报告 1.用户界面的设计思想和框图。 2.各种实现算法的算法思想。 3.算法验证例子。 4.上交源程序。 直线生成程序设计的步骤如下: 为编程实现上述算法,本程序利用最基本的绘制元素(如点、直线等),绘制图形。如图1-1所示,为程序运行主界面,通过选择菜单及下拉菜单的各功能项分别完成各种对应算法的图形绘制。 图1-1 基本图形生成的程序运行界面 2.创建工程名称为“基本图形的生成”单文档应用程序框架 (1)启动VC,选择“文件”|“新建”菜单命令,并在弹出的新建对话框中单击“工程”标签。 (2)选择MFC AppWizard(exe),在“工程名称”编辑框中输入“基本图形的生成”作为工程名称,单击“确定”按钮,出现Step 1对话框。 (3)选择“单个文档”选项,单击“下一个”按钮,出现Step 2对话框。 (4)接受默认选项,单击“下一个”按钮,在出现的Step 3~Step 5对话框中,接受默认选项,单击“下一个”按钮。

计算机图形学实验内容汇总

计算机图形学实验 肖加清

实验一图形学实验基础 一、实验目的 (1)掌握VC++绘图的一般步骤; (2)掌握OpenGL软件包的安装方法; (3)掌握OpenGL绘图的一般步骤; (4)掌握OpenGL的主要功能与基本语法。 二、实验内容 1、VC++绘图实验 (1)实验内容:以下是绘制金刚石图案。已给出VC++参考程序,但里面有部分错误,请改正,实现以下图案。 N=3 N=4

N=5 N=10 N=30

N=50 (2)参考程序 //自定义的一个类 //此代码可以放在视图类的实现文件(.cpp) 里class CP2 { public: CP2(); virtual ~CP2(); CP2(double,double); double x; double y; }; CP2::CP2() { this->x=0.0; this->y=0.0; } CP2::~CP2() { } CP2::CP2(double x0,double y0) { this->x=x0; this->y=y0; }

//视图类的一个成员函数,这个成员函数可以放在OnDraw函数里调用。 //在视图类的头文件(.h)里定义此函数 void Diamond(); //在视图类的实现文件(.cpp)里实现此函数 void CTestView::Diamond() { CP2 *P; int N; double R; R=300; N=10; P=new CP2[N]; CClientDC dc(this); CRect Rect; GetClientRect(&Rect); double theta; theta=2*PI/N; for(int i=0;i #include #include #include //定义输出窗口的大小 #define WINDOW_HEIGHT 300

计算机图形学实验三报告

计算机科学与通信工程学院 实验报告 课程计算机图形学 实验题目二维图形变换 学生姓名 学号 专业班级 指导教师 日期

成绩评定表

二维图形变换 1. 实验内容 完成对北极星图案的缩放、平移、旋转、对称等二维变换。 提示:首先要建好图示的北极星图案的数据模型(顶点表、边表)。另外,可重复调用“清屏”和“暂停”等函数,使整个变换过程具有动态效果。 2. 实验环境 软硬件运行环境:Windows XP 开发工具:visual studio 2008 3. 问题分析

4. 算法设计 程序框架: //DiamondView.h class CDiamondView : public CView { …… public: //参数输入和提示对话框 void Polaris();//北极星 …… }; //DiamondView.cpp void CDiamondView::OnMenuDiamond() { IsCutting = FALSE; if(dlgDiamond.DoModal()==IDOK) DrawDiamond(dlgDiamond.m_nVertex,dlgDiamond.

m_nRadius,100);//调用绘制金刚石的函数 } //北极星 void CDiamondView::Polaris() {......} 5. 源代码 //北极星 void hzbjx(CDC* pDC,long x[18],long y[18]) { CPen newPen1,*oldPen; newPen1.CreatePen(PS_SOLID,2,RGB(255,0,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex1[11]={{x[1],y[1]},{x[2],y[2]},{x[3],y[3]},{x[4],y[4]},{x[5],y[5]},{x[3],y[3]},{x[1],y[1]}, {x[6],y[6]},{x[3],y[3]},{x[7],y[7]},{x[5],y[5]}}; pDC->Polyline(vertex1, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,255,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex2[5]={{x[6],y[6]},{x[8],y[8]},{x[9],y[9]},{x[3],y[3]},{x[8],y[8]}}; pDC->Polyline(vertex2, 5); POINT vertex3[5]={{x[4],y[4]},{x[10],y[10]},{x[11],y[11]},{x[3],y[3]},{x[10],y[10]}}; pDC->Polyline(vertex3, 5);

计算机图形学第1_5章课后习题参考答案

第一章 1、试述计算机图形学研究的基本内容? 答:见课本P5-6页的1.1.4节。 2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。 答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。计算机图形学研究的是从数据描述到图形生成的过程。例如计算机动画制作。 图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。例如工业中的射线探伤。 模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。 3、计算机图形学与CAD、CAM技术关系如何? 答:见课本P4-5页的1.1.3节。 4、举3个例子说明计算机图形学的应用。 答:①事务管理中的交互绘图 应用图形学最多的领域之一是绘制事务管理中的各种图形。通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。 ②地理信息系统 地理信息系统是建立在地理图形基础上的信息管理系统。利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。 ③计算机动画 用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。 5、计算机绘图有哪些特点? 答:见课本P8页的1.3.1节。 6、计算机生成图形的方法有哪些? 答:计算机生成图形的方法有两种:矢量法和描点法。 ①矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。 ②描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。当像素点具有多种颜色或多种灰度等级时,就可以显示彩色图形或具有不同灰度的图形。 7、当前计算机图形学研究的课题有哪些? 答:见课本P10-11页的1.4节。

计算机图形学内容整理

计算机图形学 第一章计算机图形学概论(4) 【计算机图形学定义】 计算机图形学是研究计算机图形的表示、生成、处理、显示的学科。计算机图形学是计算机科学中最为活跃、得到广泛应用的分支之一。 1982年国际标准化组织(ISO)的定义:计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科。它是建立在传统的图学理论、应用数学和计算机科学基础上的一门边缘学科。 IEEE(Institute of Electrical and Electronics Engineers,美国电气及电子工程师学会)定义:Computer graphics is the art or science of producing graphical images with the aid of computer.计算机图形学是借助计算机产生图形影像的一门艺术或科学。 美国的James Foley在其著作中定义:计算机图形学是运用计算机描述、输入、表示、存储、处理(检索/变换/图形运算)、显示、输出图形的一门学科。 【图形和图像】 图形(Figure、Graphic):是构成图像的要素,表示图像中的某一个具体形状。图形含有几何属性,更强调场景的几何表示,是由场景的几何模型和景物的物理属性共同组成的。图形主要分为两类:基于线条信息表示;明暗图(Shading)。图形是指用计算机绘制工具绘制的画面,包括直线、曲线,圆/圆弧,方框等成分。图形一般按各个成分的参数形式存储,可以对各个成分进行移动、缩放、旋转和扭曲等变换,可以在绘图仪上将各个成分输出。 图像(Image):绘图、照片、影像的总称。图像纯指计算机内以位图(Bitmap)形式存在的灰度信息。图像是由输入设备捕捉的实际场景或以数字化形式存储的任意画面。图像可以用位图或矢量图形式存储。 数字图像(Digital Image) 【计算机图形学的研究对象】 图形:能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形等等。构成图形的要素:①几何要素:刻画对象的轮廓形状的点、线、面、体等;②非几何要素:刻画对象表面属性或材质的颜色、灰度等。 【计算机中表示图形的方法】 点阵表示:枚举出图形中所有的点的灰度或颜色(强调图形由点构成),简称为图像(数字图像)。 参数表示:由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)+属性参数(颜色、线型等)来表示图形,简称为图形。 一、计算机图形学的研究内容 如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法,构成了计算机图形学的主要研究内容。①图形的输入:如何开发利用图形输入设备及软件将图 形输入到计算机中去,以便作各种处理。②图形的处理:包括对图形进 行变换(几何变换,投影变换)和运算(集合运算),着色,形变等。③ 图形的输出:如何将图形特定的表示形式转换成图形输出系统便于接受 的表示形式,并将图形在显示屏或打印机等输出设备上输出。 计算几何:几何形体在计算机中的表示,分析、研究怎样灵活方便地建立几何形体的数学模型,提高算法效率,在计算机内更好地存储和管理这些模型等。研究曲线、曲面的表示、生成、拼接、数据拟合。 图像处理:①研究如何对一幅连续图像取样、量化以产生数字图像;②如何对数字图像做各种变换以方便处理;③如何滤去图像中的无用噪声;④如何压缩图像数据以便存储和传输,图像边缘提取,特征增强和提取。 计算机视觉和模式识别:图形学的逆过程,分析和识别输入的图像并从中提取二维或三维的数据模型(特征)。手写体识别、机器视觉。 二、计算机图形学的发展历史 50年代:1950年,第一台图形显示器作为美国麻省理工学院(MIT)旋风I号(Whirlwind I)计算机的附件诞生了,它类似于示波器的CRT(CRT的出现为计算机生成和显示图形提供了可能)来显示简单图形,主要用于图形输出,没有交互功能。1958年,美国Calcomp公司由联机的数字记录仪发展成滚筒式绘图仪,GerBer公司把数控机床发展成为平板式绘图仪。此时还处于被动式图形学时代。50年代末期,MIT的林肯实验室在“旋风”计算机上开发SAGE空中防御体系,

计算机图形学实验

实验1 直线的绘制 实验目的 1、通过实验,进一步理解和掌握DDA和Bresenham算法; 2、掌握以上算法生成直线段的基本过程; 3、通过编程,会在TC环境下完成用DDA或中点算法实现直线段的绘制。实验环境 计算机、Turbo C或其他C语言程序设计环境 实验学时 2学时,必做实验。 实验内容 用DDA算法或Besenham算法实现斜率k在0和1之间的直线段的绘制。 实验步骤 1、算法、原理清晰,有详细的设计步骤; 2、依据算法、步骤或程序流程图,用C语言编写源程序; 3、编辑源程序并进行调试; 4、进行运行测试,并结合情况进行调整; 5、对运行结果进行保存与分析; 6、把源程序以文件的形式提交; 7、按格式书写实验报告。 实验代码:DDA: # include # include

void DDALine(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; x=x0; y=y0; 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),4); x+=xIncre; y+=yIncre; } } main(){ int gdriver ,gmode ;

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号:2012211632 班级:计算机12-2班 实验地点:逸夫楼507 实验时间:15.04.10 15.04.17

实验一 1 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA 算法、Bresenham 中点算法;对于给定起点和终点的直线,分别调用DDA 算法和Bresenham 中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 2 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One (自制平台) 3 实验结果 3.1 程序流程图 (1)DDA 算法 是 否 否 是 是 开始 计算k ,b K<=1 x=x+1;y=y+k; 绘点 x<=X1 y<=Y1 绘点 y=y+1;x=x+1/k; 结束

(2)Mid_Bresenham 算法 是 否 否 是 是 是 否 是 否 开始 计算dx,dy dx>dy D=dx-2*dy 绘点 D<0 y=y+1;D = D + 2*dx - 2*dy; x=x+1; D = D - 2*dy; x=x+1; x

3.2程序代码 //-------------------------算法实现------------------------------// //绘制像素的函数DrawPixel(x, y); (1)DDA算法 void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) { //----------请实现DDA算法------------// float k, b; float d; k = float(Y1 - Y0)/float(X1 - X0); b = float(X1*Y0 - X0*Y1)/float(X1 - X0); if(fabs(k)<= 1) { if(X0 > X1) { int temp = X0; X0 = X1; X1 = temp; }

计算机图形学考核题库

第一章 一、名词解释 图形;图像;点阵表示法;参数表示法; 二、选择题: 1. 下面哪个不是国际标准化组织(ISO)批准的图形标准。() A.GKS B.PHIGS C.CGM D.DXF 2. 下面哪一项不属于计算机图形学的应用范围?(B) A. 计算机动画; B. 从遥感图像中识别道路等线划数据; C. QuickTime技术; D. 影视三维动画制作 3. 关于计算机图形标准化的论述,哪个是正确的(); A. CGM和CGI是面向图形设备的接口标准; B. GKS、IGES、STEP均是ISO标准; C. IGES和STEP是数据模型和文件格式的标准; D. PHIGS具有模块化的功能结构; 4. 与计算机图形学相关的学科有____。 A. 图象处理 B. 测量技术

C. 模式识别 D. 计算几何 E. 生命科学 F. 分子生物学 三、判断题: 计算机图形学和图像处理是两个近似互逆的学科。[]计算机图形学处理的最基本的图元是线段。[] 四、简答题: 图形包括哪两方面的要素,在计算机中如何表示它们? 阐述计算机图形学、数字图象处理和计算机视觉学科间的关系。 图形学作为一个学科得以确立的标志性事件是什么? 试列举出几种图形学的软件标准?工业界事实上的标准有那些? 举例说明计算机图形学有哪些应用范围,解决的问题是什么? 第二章 一、选择题: 1. 触摸屏是一种() A. 输入设备; B. 输出设备; C. 既是输入设备,又是输出设备; D. 两者都不是; 2. 空间球最多能提供()个自由度; A. 一个; B. 三个;

C. 五个; D. 六个; 3. 等离子显示器属于() A. 随机显示器; B. 光栅扫描显示器; C. 平板显示器; D. 液晶显示器; 4. 对于一个1024×1024存储分辩率的设备来说,当有8个位平面时,显示一帧图象所需要的内存为() A. 1M字节; B. 8M字节; C. 1M比特; D. 8M比特; 5. 分辨率为1024*1024的显示器,其位平面数为24,则帧缓存的字节数应为() A. 3MB; B. 2MB; C. 1MB; D. 512KB; 6. 下面对光栅扫描图形显示器描述正确的是:() A. 荧光粉涂层均匀离散分布; B. 是一种点画设备; C. 电子束从顶到底扫描;

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

计算机图形学实验一_画直线

大学实验报告 学院:计算机科学与技术专业:计算机科学与技术班级:计科131

如果 d<0,则M在理想直线下方,选右上方P1点; 如果 d=0,则M在理想直线上,选P1/ P2点。 由于d是xi和yi的线性函数,可采用增量计算提高运算效率。 1.如由pi点确定在是正右方P2点(d>0).,则新的中点M仅在x方向加1,新的d值为: d new=F(xi+2,yi+0.5)=a(xi+2)+b(yi+0.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a= d old-dy 2.如由pi点确定是右上方P1点(d<0),则新的中点M在x和y方向都增加1,新的d值为 d new=F(xi+2,yi+1.5)=a(xi+2)+b(yi+1.5)+c 而 d old=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c d new=d old+a+b= d old-dy+dx 在每一步中,根据前一次第二迭中计算出的d值的符号,在正右方和右上方的两个点中进行选择。d的初始值: d0=F(x0+1,y0+0.5)=F(x0,y0)+a+b/2=a+b/2=-dy+dx/2 F(x0,y0)=0,(x0,y0)在直线上。 为了消除d的分数,重新定义 F(x,y)=2(ax+by+c) 则每一步需要计算的d new 是简单的整数加法 dy=y1-y0,dx=x1-x0 d0=-2dy+dx d new=d old-2*dy,当 d old>=0 d new=d old-2(dy-dx),当d old<0 Bresenham画线算法 算法原理: 与DDA算法 相似,Bresenham 画线算法也要在 每列象素中找到 与理想直线最逼 近的象素点。 根据直线的 斜率来确定变量 在x或y方向递 增一个单位。另 一个方向y或x

计算机图形学实验报告

目录

实验一直线的DDA算法 一、【实验目的】 1.掌握DDA算法的基本原理。 2.掌握DDA直线扫描转换算法。 3.深入了解直线扫描转换的编程思想。 二、【实验内容】 1.利用DDA的算法原理,编程实现对直线的扫描转换。 2.加强对DDA算法的理解和掌握。 三、【测试数据及其结果】 四、【实验源代码】 #include

#include #include #include GLsizei winWidth=500; GLsizei winHeight=500; void Initial(void) { glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); } void DDALine(int x0,int y0,int x1,int y1) { glColor3f(1.0,0.0,0.0); int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; 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++) { glPointSize(3); glBegin(GL_POINTS); glV ertex2i(int(x+0.5),(int)(y+0.5)); glEnd(); x+=xIncre; y+=yIncre; } } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); DDALine(100,100,200,180); glFlush(); }

计算机图形学 (2)

《计算机图形学》思考练习题 第一章计算机图形学概论 1.比较计算机图形学与图象处理技术相同点和不同点。 计算机图形学是研究怎样用数字计算机生成、处理和显示图形的一门学科。 图像处理技术研究如何对连续图像取样、量化以产生数字图像,如何对数字图像做各种变换以方便处理,如何滤去图像中的无用噪声,如何压缩图像数据以便存储和传输,图像边缘提取,特征增强和提取。 2.列举三个计算机图形的应用实例。 勘探、绘制地形地貌,系统模拟,虚拟现实。辅助教学设计。 3.简述计算机图形学发展动向。 造型技术—真实图形生成技术—人机交互技术—基于网络的图形技术 第二章计算机图形系统概述 1.叙述计算机图形系统的基本功能。 输入、输出、计算、存储、对话 他的基本功能是帮助人们设计、分析、采集、存贮图形、视频甚至音乐等信息。 2.输入设备可有哪几种逻辑功能?请举出各自对应的物理设备。 .定位(locator): 指定一个坐标点。对应的物理设备有鼠标器、键盘、数字化仪、触摸屏等。.笔划(stroke): 指示一个坐标点系列, 如指定一条曲线的控制点等。主要物理设备有数字化仪。.送值(valuator): 输入一个数值。最常用的物理设备是键盘的数字键。 .字符串(string):输入一个字符串。键盘字母键 .拾取(pick):各种定位设备 .选择(choise): 鼠标器,数字化仪,键盘功能键等 3.画出图形软件的层次结构及主要组成。 ------------------------------------ | 应用程序| | ---------------------------- | | 图形支撑软件| | | ------------------- | | | 高级语言| | | | ------------ | | | | 操作系统| ------------------------------------ 主要部分:图形核心系统GKS 计算机图形元文件CGM 计算机图形设备接口CGI 程序员层次结构图形系统PHIGS 4.颜色查找表的概念及实现原理。 颜色查找表是一维线性表,其每一项的内容对应一种颜色,它的长度由帧缓存单元的位数决定。实现原理:把颜色码放在一个独立的表中,帧缓存存放的是颜色表中各项的索引值,这样在帧缓存单元的位数不增加的情况下,具有了大范围挑选颜色的能力。 5.光栅扫描显示器结构与工作原理。

《计算机图形学实验报告》

一、实验目的 1、掌握中点Bresenham直线扫描转换算法的思想。 2掌握边标志算法或有效边表算法进行多边形填充的基本设计思想。 3掌握透视投影变换的数学原理和三维坐标系中几何图形到二维图形的观察流程。 4掌握三维形体在计算机中的构造及表示方法 二、实验环境 Windows系统, VC6.0。 三、实验步骤 1、给定两个点的坐标P0(x0,y0),P1(x1,y1),使用中点Bresenham直线扫描转换算法画出连接两点的直线。 实验基本步骤 首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。 其次、使用中点Bresenham直线扫描转换算法实现自己的画线函数,函数原型可表示如下: void DrawLine(CDC *pDC, int p0x, int p0y, int p1x, int p1y); 在函数中,可通过调用CDC成员函数SetPixel来画出扫描转换过程中的每个点。 COLORREF SetPixel(int x, int y, COLORREF crColor ); 再次、找到文档视图程序框架视图类的OnDraw成员函数,调用DrawLine 函数画出不同斜率情况的直线,如下图:

最后、调试程序直至正确画出直线。 2、给定多边形的顶点的坐标P0(x0,y0),P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4)…使用边标志算法或有效边表算法进行多边形填充。 实验基本步骤 首先、使用MFC AppWizard(exe)向导生成一个单文档视图程序框架。 其次、实现边标志算法或有效边表算法函数,如下: void FillPolygon(CDC *pDC, int px[], int py[], int ptnumb); px:该数组用来表示每个顶点的x坐标 py :该数组用来表示每个顶点的y坐标 ptnumb:表示顶点个数 注意实现函数FillPolygon可以直接通过窗口的DC(设备描述符)来进行多边形填充,不需要使用帧缓冲存储。(边标志算法)首先用画线函数勾画出多边形,再针对每条扫描线,从左至右依次判断当前像素的颜色是否勾画的边界色,是就开始填充后面的像素直至再碰到边界像素。注意对顶点要做特殊处理。 通过调用GDI画点函数SetPixel来画出填充过程中的每个点。需要画线可以使用CDC的画线函数MoveTo和LineTo进行绘制,也可以使用实验一实现的画直线函数。 CPoint MoveTo(int x, int y ); BOOL LineTo(int x, int y ); 实现边标志算法算法需要获取某个点的当前颜色值,可以使用CDC的成员函数 COLORREF GetPixel(int x, int y ); 再次、找到文档视图程序框架视图类的OnDraw成员函数,调用FillPolygon 函数画出填充的多边形,如下: void CTestView::OnDraw(CDC* pDC) { CTestcoodtransDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

计算机图形学上机实验指导

计算机图形学上机实验指导 指导教师:张加万老师 助教:张怡 2009-10-10

目录 1.计算机图形学实验(一) – OPENGL基础 ..................................... - 1 - 1.1综述 (1) 1.2在VC中新建项目 (1) 1.3一个O PEN GL的例子及说明 (1) 2.计算机图形学实验(二) – OPENGL变换 ..................................... - 5 - 2.1变换 (5) 3.计算机图形学实验(三) - 画线、画圆算法的实现....................... - 9 - 3.1MFC简介 (9) 3.2VC6的界面 (10) 3.3示例的说明 (11) 4.计算机图形学实验(四)- 高级OPENGL实验...................... - 14 - 4.1光照效果 (14) 4.2雾化处理 (16) 5.计算机图形学实验(五)- 高级OPENGL实验........................ - 20 - 5.1纹理映射 (20) 5.2反走样 (24) 6.计算机图形学实验(六) – OPENGL IN MS-WINDOWS .......... - 27 - 6.1 实验目标: (27) 6.2分形 (28)

1.计算机图形学实验(一) – OpenGL基础 1.1综述 这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。 OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。 本次实验不涉及面向对象编程,不涉及MFC。 1.2在VC中新建项目 1.2.1新建一个项目 选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,如Test,回车即可。VC为你创建一个工作区(WorkSpace),你的项目Test就放在这个工作区里。 1.2.2为项目添加文件 为了使用OpenGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glaux.lib、opengl32.lib,这三个文件位于c:\program files\microsoft visual studio\vc98\lib目录中。 选中菜单Project->Add To Project->Files项(或用鼠标右键),把这三个文件加入项目,在FileView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project->Setting->Link->Object/library Modules 即可。 点击工具条中New Text File按钮,新建一个文本文件,存盘为Test.c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。 1.3一个OpenGL的例子及说明 1.3.1源程序 请将下面的程序写入源文件Test.c,这个程序很简单,只是在屏幕上画两根线。 #include

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号:20112497 班级:计算机科学与技术11-2班实验地点:逸夫楼507 实验时间:2014.03

实验1直线的生成 1实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析 实验数据的能力; 编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的 直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记 录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编 制成表格,并绘制折线图比较两种算法的性能。 2实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One(自制平台)。 本实验提供名为 Experiment_Frame_One的平台,该平台提供基本 绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham 算法,并进行分析。 ?平台界面:如错误!未找到引用源。所示 ?设置:通过view->setting菜单进入,如错误!未找到引 用源。所示 ?输入:通过view->input…菜单进入.如错误!未找到引用 源。所示 ?实现算法: ◆DDA算法:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) Mid_Bresenham法:void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1)

3实验结果 3.1程序流程图 1)DDA算法流程图:开始 定义两点坐标差dx,dy,以及epsl,计数k=0,描绘点坐标x,y,x增 量xIncre,y增量yIncre ↓ 输入两点坐标x1,y1,x0,y0 ↓ dx=x1-x0,dy=y1-y0; _________↓_________ ↓↓ 若|dx|>|dy| 反之 epsl=|dx| epsl=|dy| ↓________...________↓ ↓ xIncre=dx/epsl; yIncre=dy/epsl ↓ 填充(强制整形)(x+0.5,y+0.5); ↓←←←← 横坐标x+xIncre; 纵坐标y+yIncre; ↓↑ 若k<=epsl →→→k++ ↓ 结束 2)Mid_Bresenham算法流程图开始 ↓ 定义整形dx,dy,判断值d,以及UpIncre,DownIncre,填充点x,y ↓ 输入x0,y0,x1,y1 ______↓______ ↓↓ 若x0>x1 反之 x=x1;x1=x0;x0=x; x=x0;

计算机图形学期末复习[1]备课讲稿

计算机图形学期末复 习[1]

计算机图形学期末复习 第一章绪论 ●名词解释:图形、图像、点阵法、参数法。 图形:是指能够在人的视觉系统中形成视觉印象的客观对象。 点阵法:是具有灰度或颜色信息的点阵来表示图形的一种方法,它强调图形有哪些点组成,这些点具有什么灰度或色彩。 图形包括哪方面的要素参数法:是以计算机所记录的图形的形状参数与属性参数来表示图形的一种方法。 把参数法描述的图形叫做图形;把点阵法描述的图形叫做图像。 ●图形包括哪两方面的要素,在计算机中如何表示它们? 图形的要素可以分为两类,一类是刻画形状的点、线、面、体等几何要素;另一类是反应物体本身固有属性,如表面属性或材质的明暗、灰度、色彩(颜色信息)等非几何要素。 在计算机中表示带有颜色及形状的图和形常用两种方法:点阵法和参数法。 ●什么叫计算机图形学?分析计算机图形学、数字图像处理和计算机视觉学科间的关系。 计算机图形学是研究怎样利用计算机来显示、生成和处理图形的原理、方法、和技术的一门学科。 计算机图形学试图将参数形式的数据描述转换生成(逼真的)图像。数据图像处理则着重强调图像之间进行变换,它旨在对图像进行各种加工以改善图像的视觉效果,计算机视觉是研究用计算机来模拟生物外显或宏观视觉功能的科学和技术,它模拟对客观事物模式的识别过程,是从图像到特征数据对象的描述表达处理过程。 ●有关计算机图形学的软件标准有哪些? 标准有:计算机图形核心系统(GKS)及其语言联编、三维图形核心系统(GKS-3D)及其语言联编、程序员层次交互式图形系统(PHIGS)及其语言联编、计算机图形元文件(CGM)、计算机图形接口(CGI)、基本图形转换规范(IGES)、产品数据转换规范(STEP)等。 ●试发挥你的想象力,举例说明计算机图形学有哪些应用范围,解决的问题是什么? 近年来计算机图形学已经广泛地用于多种领域,如科学、医药、商业、工业、政府部门、艺术、娱乐业、广告业、教育和培训等。 第二章计算机图形系统及图形硬件 ●名词解释:刷新、刷新频率、像素点、屏幕分辨率、位平面、屏幕坐标系。 刷新:消除因时间间隔造成的内容或状态不一致。分为手动和自动两种。一般用于内容或状态变化较频繁的地方。 刷新频率:每秒钟屏幕图像刷新的次数。 像素点:是指图形显示在屏幕上时,按当前的图形显示分辨率所能提供的最小元素点。 屏幕分辨率:也称光栅分辨率或物理分辨率,通常用水平方向上的光点数与垂直方向上的光点数的乘积来表示。 位平面:帧缓存被分成若干个独立的存储区域,每一个区域成为一个位面。 屏幕坐标系:图形显示器坐标原点定义在屏幕的左上角,但也有的讲原点定义在屏幕左下角。其中像素点(X,Y)坐标的取值范围是0到x或y方向的最大分辨率-1。 ●一个交互式计算机图形系统必须具有哪几种功能?其结构如何? 应该具有计算、存储、交互(对话)、输入和输出等5种功能。 其结构由图形软件和图形硬件两部分组成。图形软件由图形应用数据结构、图形应用软件和图形支撑软件组成;图形硬件由图形计算机系统和图形设备组成。 ●试列举出你所知道的图形输入与输出设备。 图形输入设备:键盘、鼠标器、光笔、触摸屏、操纵杆、跟踪球和空间球、数据手套、数字化仪、图像扫描仪、声频输入系统和视频输入系统等。 图形输出设备:阴极射线管、CRT图形显示器、平板显示器和三维观察设备等。 ●阴极射线管由哪几部分组成?它们的功能分别是什么? 阴极射线管由电子枪、偏转系统和荧光屏组成。电子枪的主要功能是产生一个沿管轴(Z轴)方向前进的高速的细电子束,用于轰击荧光屏;偏转系统的功能是使荧光屏上所有位置显示图形及字符; CRT荧光屏的功能是显示图形和字符。 ●简述荫罩式彩色阴极射线管的结构和工作原理。

计算机图形学概论论文

计算机图形学概论论文 题目:图形显示原理 姓名:谢春晖 学号;08315122 学院:机械与电子工程学院 专业:机械电子工程

通过课堂的学习我们了解了计算机图形学的图形学的一些专业知识,首先我们明白了,图形的显示过程,扫描显示原理,光栅扫描显示,随机扫描显示等等关于计算机图形学的相关知识。 一,图形显示过程 图形的显示过程应该从硬件和软件两个方面来说。就硬件方面来说,当电子束扫描到屏幕上某一像素的位置(坐标)时,显示器中的显示处理器dpu(display processing unit)会同时从对应的显示缓冲单元中取出像素值,并以此查找彩色表的地址,从该地址处得到该像素的红、绿、蓝三基色分量,经d/a转换后分别控制三基色电子枪,使屏幕上该像素显示出三基色的混合色。在图2示例中,彩色表的红、绿分量分别为15,而蓝分量为0,因此,屏幕上该像素的颜色会是黄色。 就软件方面来说,要完成图形显示的初始化及图形的加工。这里,初始化的意思是要将计算机的显示方式设置为显示器所能够显示的某一种模式,并将所有的显示缓冲单元清零,另外,对彩色表的每一个单元要分别填上预定的颜色值,使彩色索引与具体的颜色联系起来。 图形加工则是图形软件的主要任务,其主要内容是:根据需要显示的图形内容,随时改写显示缓冲单元的内容。这是因为屏幕上显示的图形是由显示卡上显示缓冲区中的内容唯一决定的。一旦在显示缓冲单元中写入要求的彩色索引值,图形就自然在屏幕上显示出来了。 二,扫描显示原理 1.光栅扫描显示 (1)光栅扫描显示的帧:在刷新式CRT光栅扫描方式中,电子束总是不断地从左到右、从上到下反复扫描整个屏幕。电子束从左到右(横向)扫描一次为一条扫描线。在每条扫描线末端,电子束返回到屏幕的左边,又开始显示下一条扫描线。从屏幕顶部到屏幕底部(纵向)的扫描线构成一帧图像。一帧图像是显示系统执行一次全屏幕循环扫描(一次屏幕刷新)所产生的图像。每帧终了,电子束返回到屏幕的左上角,开始下一帧。在扫描过程中,只要在对应时刻、对应位置控制电子束的强度就能显示所要的图形。 (2)光栅扫描的逐行扫描:扫描线在屏幕上自上而下一条一条地扫描。当电子束从左到右到达屏幕的右边在每条扫描线末端,电子束返回到屏幕的左边,又开始显示下一条扫描线。在回扫过程中,电子束几乎不发射出电子,而且速度也很快。水平回扫(horizontal retrace):每条扫描线扫过后,返回到屏幕左端。垂直回扫(vertical retrace):当电子束到达屏幕底部时,又返回到屏幕左上角。然后,从头开始扫描下一帧。 (3)光栅扫描的隔行扫描:某些系统采用隔行(interlaced)刷新方式,每帧显示分为两趟:第一趟:电子束从顶到底,一行隔一行地扫描。第二趟:垂直回扫后,电子束则再扫描另一半扫描线。以这种方式的隔行扫描使在逐行扫描所需时间的一半时就能看到整个屏幕显示。隔行扫描技术主要用于较慢的刷新速率。例如,对一个较老的每秒30帧的非隔行扫描显示,可注意到它的闪烁。采用隔行扫描,两趟中的每一趟可以1/60秒完成,也就是说,刷新速率接近每秒60帧。这是避免闪烁且提供相邻扫描线包含类似的显示信息的有效技术,也是降低成本而不增加闪烁感的有效办法。 (4)光栅扫描刷新频率:光栅扫描显示器每秒刷新的循环数称CRT的刷新频率。

相关主题
文本预览
相关文档 最新文档