计算机图形学课程设计

计算机图形学课程设计
计算机图形学课程设计

西安科技大学

计算机图形学课程设计

题目:长方体体的光照效果

专业班级:信计1102班

小组成员:陈维多1108060216

邹世林1108060224

左力1108060225

李优1108060229 日期: 2013年1月2日

目录

一课程设计题目 (3)

1.题目要求 (3)

2.任务 (3)

二任务分析算法介绍 (3)

1.任务分析 (3)

2.算法介绍 (4)

三总体设计 (5)

1.定义三维齐次向量结构体 (5)

2.定义三维齐次坐标结构 (5)

3.定义面的结构 (6)

4.定义点的结构 (6)

5.长方体顶点定义及初始化 (7)

6. 面表 (7)

7.定义点光源、视线方向、光照方向 (8)

8.各面可见性计算和判断 (9)

9.窗口-视区变换 (11)

10.路径填充 (12)

四流程图 (13)

五源程序 (14)

六程序运行效果图 (27)

七总结 (28)

参考文献 (29)

一、课程设计题目

长方体体的光照效果

1.题目要求

对长方体,建立一个点光源,采用环境光和点光源漫反射光的光照模型,应用FLAT明暗处理方法,显示平行投影后的

长方体光照效果。

2.任务

本题目主要包括五个任务,

1)长方体表面模型的建立

2)长方体的可见面判断

3)可见面的背光性判断

4)可见面光照计算

5)可见面光照效果显示

附加:通过键盘上下左右按键对图形进行旋转

二、任务分析算法介绍

1.任务分析

任务1)中,定义三维齐次坐标结构和面的结构;定义顶点表和面表,对长方体绕X轴旋转和绕Y轴旋转。

任务2)中对每一个面计算其外法向量及可见性

任务3)中对每个可见面计算其光线向量,并判断其是否为背光面。

任务4)计算每个见光面的环境光和点光源的漫反射分量。

任务5)用该面的光强显示该可见面

附加: 人机交互

2.算法介绍

1)旋转变换

绕X 轴旋转变换的坐标表示??

???+='-='='ββββcos sin sin cos Z Y Z Z Y Y X X

绕Y 轴旋转变换的坐标表示??

???-='='+='ββββsin cos cos sin X Z Z Y Y X Z X 2) 平行投影

在XOY 平面投影后坐标??

???='='='0Z Y Y X X

3) 环境光模型

物体没有受到光源的直射,但其表面仍有一定亮度,这是由于环境光的作用。

10,*<==<=a a a e k I k I

e I 表示环境光反射强度

a k 表示环境光反射率

a I 表示环境光入射强度

4)漫反射光模型

漫反射光可认为是在点光源的照射下,光被物体表面吸收后,然后重新反射出来的光。

2/0,10,cos **πθθ<==<<==<=d p d d k I k I d I 表示漫反射光强度

d k 表示漫反射反射率

p I 表示点光源入射强度大小

θ入射光与物体表面法矢量夹角

三、总体设计

1.定义三维齐次向量结构体

typedef struct Vector3D

{

float x;

float y;

float z;

int f; //f 表示所在的平面的编号

}VECTOR;

2. 定义三维齐次坐标结构

typedef struct tagHOMOCOORD

{

float x;

float y;

float z;

float w;

}HOMOCOORD;

3.定义面的结构

typedef struct tagPLANE

{

int v0, v1, v2, v3;

VECTOR n; //外法向量HOMOCOORD center; //中心点float Id; //漫反射光强

int flag;//标识符

float kd; //漫反射率

float ka; //环境光反射率

float Ie; //环境光反射光强float I; //光强

}PLANE;

4.定义点的结构

typedef struct tagMYPOINT {

float x,y;

}MYPOINT;

5.长方体顶点定义及初始化

pts=new HOMOCOORD[ptn];

pts[0].x= 1; pts[0].y= 2; pts[0].z= 1; pts[0].w=1;

pts[1].x= -1; pts[1].y= 2; pts[1].z= 1; pts[1].w=1;

pts[2].x= -1; pts[2].y= -2; pts[2].z= 1; pts[2].w=1;

pts[3].x= 1; pts[3].y= -2; pts[3].z= 1; pts[3].w=1;

pts[4].x= 1; pts[4].y= 2; pts[4].z= -1; pts[4].w=1;

pts[5].x= -1; pts[5].y= 2; pts[5].z= -1; pts[5].w=1;

pts[6].x= -1; pts[6].y= -2; pts[6].z= -1; pts[6].w=1;

pts[7].x= 1; pts[7].y= -2; pts[7].z= -1; pts[7].w=1;

6.面表

fn=6;

faces=new PLANE[fn];

faces[0].v0=0; faces[0].v1=1; faces[0].v2=2; faces[0].v3=3; faces[1].v0=4; faces[1].v1=5; faces[1].v2=1; faces[1].v3=0; faces[2].v0=5; faces[2].v1=6; faces[2].v2=2; faces[2].v3=1; faces[3].v0=6; faces[3].v1=7; faces[3].v2=3; faces[3].v3=2; faces[4].v0=7; faces[4].v1=4; faces[4].v2=0; faces[4].v3=3; faces[5].v0=7; faces[5].v1=6; faces[5].v2=5; faces[5].v3=4;

7.定义点光源、视线方向、光照方向

1)点光源

illuminant.x = -100;

illuminant.y = -100;

illuminant.z = 100;

Ia = 0.5;//环境光入射强度

Ip = 0.5;//漫反射入射光强度

2)视线方向

VECTOR eye_vec;

eye_vec.x = 0;

eye_vec.y = 0;

eye_vec.z = -1;

3)定义光照方向

light_vec = new VECTOR[fn];

VECTOR vector[6][2] ;

for(i=0; i<6; i++)

{

vector[i][0] = CalculateVector(pts[faces[i].v0], pts[ faces[i].v1], i );

vector[i][1] = CalculateVector(pts[faces[i].v0], pts[ faces[i].v2], i );

}

8.各面可见性计算和判断

1)计算各个面的外法向量

faces[0].n = VecCross(vector[0][0], vector[0][1] );

for(i=0; i<6; i++)

{

faces[i].n = VecCross(vector[i][0], vector[i][1] );

}

2)各个面的可见性判定

float cos_angle;

for(i=0; i<6; i++)

{

cos_angle = (-1.0)*(InnerProduct(faces[i].n,

eye_vec))/(GetModule(faces[i].n)*GetModule(eye_vec));

if(cos_angle>0)

faces[i].flag = VISIABLE;

else

faces[i].flag = UNVISIABLE;

}

3)计算各个面的中心点

for(i=0; i

{

faces[i].center.x =

(pts[faces[i].v0].x+pts[faces[i].v1].x+pts[faces[i].v2].x+pts[faces[i].v3].x )/4.0f ;

faces[i].center.y =

(pts[faces[i].v0].y+pts[faces[i].v1].y+pts[faces[i].v2].y+pts[faces[i].v3].y )/4.0f ;

faces[i].center.z =

(pts[faces[i].v0].z+pts[faces[i].v1].z+pts[faces[i].v2].z+pts[faces[i].v3].z) /4.0f ;

faces[i].center.w =

(pts[faces[i].v0].w+pts[faces[i].v1].w+pts[faces[i].v2].w+pts[faces[i].v3]. w)/4.0f ;

}

4)计算各个面的光照方向

for(i=0; i

{

light_vec[i] = CalculateVector(illuminant, faces[i].center, EOF);

}

5)计算各个面的漫反射光强

for(i=0; i

{

faces[i].Id = Ip*faces[i].kd*(-1)*(InnerProduct(faces[i].n,

light_vec[i])/(GetModule(faces[i].n)*GetModule(light_vec[i])));

}

6)计算各个面环境光反射光强

for(i=0; i

{

faces[i].Ie = faces[i].ka*Ia;

}

7)计算各个面光强(漫反射光强和环境反射光强之和)for(i=0; i

{

faces[i].I = faces[i].Id+faces[i].Ie ;

}

//窗口-视区变换实现过程

float wxl=-5,wxr=5,wyb=-5,wyt=5;

int vxl=0,vxr=800,vyb=0,vyt=600;

9.窗口-视区变换

int a = (int)((vxr-vxl)/(wxr-wxl));

int b = (int)(vxl-wxl*a);

int c = (int)((vyt-vyb)/(wyt-wyb));

int d = (int)(vyb-wyb*c);

for(i=0;i

{

pts2D[i].x = a*pts[i].x+b;

pts2D[i].y = c*pts[i].y+d;

}

10. 路径填充

CBrush Brush;

Brush.CreateSolidBrush(RGB(faces[j].I*255,faces[j].I*255,faces[j].I *255+40));

pd.SelectObject(&Brush);

pd.BeginPath();

pd.MoveTo(p[0]);

for(int i=1;i<4;i++)

pd.LineTo(p[i]);

pd.LineTo(p[0]);

pd.EndPath();

pd.FillPath();

Brush.DeleteObject();

Draw3DView.h文件

//定义三维齐次向量结构体typedef struct Vector3D

{

float x;

float y;

float z;

int f; //f表示所在的平面的编号}VECTOR;

//定义三维齐次坐标结构

typedef struct tagHOMOCOORD {

float x;

float y;

float z;

float w;

}HOMOCOORD;

//定义面的结构

typedef struct tagPLANE

{

int v0, v1, v2, v3;

VECTOR n; //外法向量

HOMOCOORD center; //中心点

float Id; //漫反射光强

int flag;

float kd; //漫反射率

float ka; //环境光反射率

float Ie; //环境光反射光强

float I; //光强

}PLANE;

//定义点的结构,需要浮点数的x,y

typedef struct tagMYPOINT

{

float x,y;

}MYPOINT;

public:

VECTOR CalculateVector(HOMOCOORD start, HOMOCOORD end, int face);//计算一个3维向量的函数,

//从start点指向end点的属于face面的向量VECTOR VecCross(VECTOR vec1, VECTOR vec2);//计算两个向量叉积,即外法向量

float InnerProduct(VECTOR vec1, VECTOR vec2);//计算两个向量

float GetModule(VECTOR vec); //计算向量的模

void RotateY(int angle); //绕y轴逆时针旋转

void RotateX(int angle); //绕x轴逆时针旋转

void DrawMy3DGraphics(); //绘制长方体

virtual ~CDraw3DView();

protected:

HOMOCOORD illuminant; //定义光源坐标

float Ip; //定义光源光强

float Ia; //环境光光强

VECTOR *light_vec; //各个面的光照方向指针HOMOCOORD *pts; //三维顶点指针

MYPOINT *pts2D; //自定义的二维浮点数结构,表示变换后的二维点

PLANE *faces; //长方体的面指针

int ptn,fn; //顶点个数与面的个数

Draw3DView.cpp文件

int x_angle = 0;

int y_angle = 0;

void CDraw3DView::DrawMy3DGraphics()

{

//形体定义

ptn=8;

pts=new HOMOCOORD[ptn];

//设置长方体

pts[0].x=1; p ts[0].y=2; p ts[0].z=1; pts[0].w=1;

pts[1].x=-1; pts[1].y=2; pts[1].z=1; pts[1].w=1;

pts[2].x=-1; pts[2].y=-2; pts[2].z=1; pts[2].w=1;

pts[3].x=1; p ts[3].y=-2; pts[3].z=1; pts[3].w=1;

pts[4].x=1; p ts[4].y=2; p ts[4].z=-1; pts[4].w=1;

pts[5].x=-1; pts[5].y=2; pts[5].z=-1; pts[5].w=1;

pts[6].x=-1; pts[6].y=-2; pts[6].z=-1; pts[6].w=1;

pts[7].x=1; p ts[7].y=-2; pts[7].z=-1; pts[7].w=1;

///给定义面的指针分配内存;

fn=6;

faces=new PLANE[fn];

//设置立方体各面

faces[0].v0=0; faces[0].v1=1; faces[0].v2=2; faces[0].v3=3; faces[1].v0=4; faces[1].v1=5; faces[1].v2=1; faces[1].v3=0; faces[2].v0=5; faces[2].v1=6; faces[2].v2=2; faces[2].v3=1; faces[3].v0=6; faces[3].v1=7; faces[3].v2=3; faces[3].v3=2;

faces[4].v0=7; faces[4].v1=4; faces[4].v2=0; faces[4].v3=3; faces[5].v0=7; faces[5].v1=6; faces[5].v2=5; faces[5].v3=4; pts2D=new MYPOINT[ptn];

for(i=0; i

{

faces[i].ka = 0.8;

faces[i].kd = 0.8;

}

//定义点光源

illuminant.x = -100;

illuminant.y = -100;

illuminant.z = 100;

Ia = 0.5;

Ip = 0.5;

//定义视线方向

VECTOR eye_vec;

eye_vec.x = 0;

eye_vec.y = 0;

eye_vec.z = -1;

//定义光照方向

light_vec = new VECTOR[fn];

//旋转调用

RotateX(x_angle);

RotateY(y_angle);

//定义并计算各个面的两条相交的向量

VECTOR vector[6][2] ;

for(i=0; i<6; i++)

{

vector[i][0] = CalculateVector(pts[faces[i].v0], pts[ faces[i].v1], i );

vector[i][1] = CalculateVector(pts[faces[i].v0], pts[ faces[i].v2], i );

}

//计算各个面的外法向量

faces[0].n = VecCross(vector[0][0], vector[0][1] );

for(i=0; i<6; i++)

{

faces[i].n = VecCross(vector[i][0], vector[i][1] );

}

//各个面的可见性判定

float cos_angle;

for(i=0; i<6; i++)

{

cos_angle = (-1.0)*(InnerProduct(faces[i].n, eye_vec))/(GetModule(faces[i].n)*GetModule(eye_vec));

if(cos_angle>0)

faces[i].flag = VISIABLE;

else

faces[i].flag = UNVISIABLE;

}

//计算各个面的中心点

for(i=0; i

{

faces[i].center.x = (pts[faces[i].v0].x+pts[faces[i].v1].x+pts[faces[i].v2].x+pts[faces[i].v3]. x)/4.0f ;

faces[i].center.y = (pts[faces[i].v0].y+pts[faces[i].v1].y+pts[faces[i].v2].y+pts[faces[i].v3]. y)/4.0f ;

faces[i].center.z = (pts[faces[i].v0].z+pts[faces[i].v1].z+pts[faces[i].v2].z+pts[faces[i].v3]. z)/4.0f ;

faces[i].center.w =

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号: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; }

研究生计算机图形学课程室内场景OpenGL--实验报告Word版

《高级计算机图形学》实验报告 姓名:学号:班级: 【实验报告要求】 实验名称:高级计算机图形学室内场景 实验目的:掌握使用OpenGL生成真实感复杂对象的方法,进一步熟练掌握构造实体几何表示法、扫描表示法、八叉树法、BSP树法等建模方法。 实验要求:要求利用OpenGL生成一个真实感的复杂对象及其周围场景,并显示观测点变化时的几何变换,要具备在一个纹理复杂的场景中漫游功能。要求使用到光线跟踪算法、 纹理映射技术以及实时绘制技术。 一、实验效果图 图1:正面效果图

图2:背面效果图 图4:背面效果图

图4:室内场景细节效果图 图5:场景角度转换效果图

二、源文件数据代码: 共6个文件,其实现代码如下: 1、DlgAbout.cpp #include "StdAfx.h" #include "DlgAbout.h" CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() 2、FormCommandView.cpp #include "stdafx.h" #include "Tool.h" #include "MainFrm.h" #include "FormCommandView.h" #include "ToolDoc.h" #include "RenderView.h" // Download by https://www.360docs.net/doc/9217424164.html, #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif // CFormCommandView IMPLEMENT_DYNCREATE(CFormCommandView, CFormView) CFormCommandView::CFormCommandView() : CFormView(CFormCommandView::IDD) { //{{AFX_DATA_INIT(CFormCommandView)

计算机图形学试题附答案完整版

名词解释 将图形描述转换成用像素矩阵表示的过程称为扫描转换。 1.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 三、填空 1.图形软件的建立方法包括提供图形程序包、和采用专用高级语言。 2.直线的属性包括线型、和颜色。 3.颜色通常用红、绿和蓝三原色的含量来表示。对于不具有彩色功能的显示系统,颜色显示为。 4.平面图形在内存中有两种表示方法,即和矢量表示法。 5.字符作为图形有和矢量字符之分。 6.区域的表示有和边界表示两种形式。 7.区域的内点表示法枚举区域内的所有像素,通过来实现内点表示。 8.区域的边界表示法枚举区域边界上的所有像素,通过给赋予同一属性值来实现边界表示。 9.区域填充有和扫描转换填充。 10.区域填充属性包括填充式样、和填充图案。 11.对于图形,通常是以点变换为基础,把图形的一系列顶点作几何变换后,

连接新的顶点序列即可产生新的变换后的图形。 12.裁剪的基本目的是判断图形元素是否部分或全部落在之内。 13.字符裁剪方法包括、单个字符裁剪和字符串裁剪。 14.图形变换是指将图形的几何信息经过产生新的图形。 15.从平面上点的齐次坐标,经齐次坐标变换,最后转换为平面上点的坐标,这一变换过程称为。 16.实体的表面具有、有界性、非自交性和闭合性。 17.集合的内点是集合中的点,在该点的内的所有点都是集合中的元素。 18.空间一点的任意邻域内既有集合中的点,又有集合外的点,则称该点为集合的。 19.内点组成的集合称为集合的。 20.边界点组成的集合称为集合的。 21.任意一个实体可以表示为的并集。 22.集合与它的边界的并集称集合的。 23.取集合的内部,再取内部的闭包,所得的集合称为原集合的。 24.如果曲面上任意一点都存在一个充分小的邻域,该邻域与平面上的(开)圆盘同构,即邻域与圆盘之间存在连续的1-1映射,则称该曲面为。 25.对于一个占据有限空间的正则(点)集,如果其表面是,则该正则集为一个实体(有效物体)。 26.通过实体的边界来表示一个实体的方法称为。 27.表面由平面多边形构成的空间三维体称为。 28.扫描表示法的两个关键要素是和扫描轨迹。 29.标量:一个标量表示。 30.向量:一个向量是由若干个标量组成的,其中每个标量称为向量的一个分量。 四、简答题 1. 什么是图像的分辨率?

计算机图形学实验报告 (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))

计算机图形学课程设计报告

一、设计内容与要求 1.1、设计题目 算法实现时钟运动 1.2、总体目标和要求 (1)目标:以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到巩固和实践计算机图形学课程中的理论和算法;学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。 (2)总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。(3)开发环境:Viusal C++ 6.0 1.3、设计要求 内容: (1)掌握动画基本原理; (2)实现平面几何变换; 功能要求: (1)显示时钟三个时针,实现三根时针间的相互关系;

(2)通过右键菜单切换时钟背景与时针颜色; 1.4设计方案 通过使用OpenGL提供的标准库函数,综合图形学Bresenham画线和画圆的算法,OpenGL颜色模型中颜色表示模式等实现指针式时钟运动,并通过点击右键菜单实习时钟背景与时针颜色的转换。根据Bresenham画线和画圆的算法,画出时钟的指针和表盘。再根据OpenGL颜色模型定义当前颜色。设置当时钟运行时交换的菜单,运行程序时可变换时钟背景与时针的颜色。最后再设置一个恢复菜单恢复开始时表盘与指针的颜色。

二、总体设计 2.1、过程流程图

2.2、椭圆的中点生成算法 1、椭圆对称性质原理: (1)圆是满足x轴对称的,这样只需要计算原来的1/2点的位置;(2)圆是满足y轴对称的,这样只需要计算原来的1/2点的位置; 通过上面分析可以得到实际上我们计算椭圆生成时候,只需要计算1/4个椭圆就可以实现对于所有点的生成了。 2、中点椭圆算法内容: (1)输入椭圆的两个半径r1和r2,并且输入椭圆的圆心。设置初始点(x0,y0)的位置为(0,r2); (2)计算区域1中央决策参数的初始值 p = ry*ry - rx*rx*ry + 1/4*(rx*rx); (3)在区域1中的每个Xn为止,从n = 0 开始,直到|K|(斜率)小于-1时后结束; <1>如果p < 0 ,绘制下一个点(x+1,y),并且计算 p = p + r2*r2*(3+2*x); <2>如果P >=0 ,绘制下一个点(x+1,y-1),并且计算 p = p + r2*r2*(3+2*point.x) - 2*r1*r1*(y-1) (4)设置新的参数初始值; p = ry*ry(X0+1/2)*(X0+1/2) + rx*rx*(Y0-1) - rx*rx*ry*ry; (5)在区域2中的每个Yn为止,从n = 0开始,直到y = 0时结束。 <1>如果P>0的情况下,下一个目标点为(x,y-1),并且计算 p = p - 2rx*rx*(Yn+1) + rx*rx;

《计算机图形学》试卷及答案

一、填空题(每空0.5分,共 1 0 分) 1、 计算机图形学中的图形是指由点、线、面、体等 和明暗、灰度(亮度)、色 彩等 构成的,从现实世界中抽象出来的带有灰度、色彩及形状的图或形。 2、 一个计算机图形系统至少应具有 、 、输入、输出、 等 基本功能。 3、 常用的字符描述方法有:点阵式、 和 。 4、 字符串剪裁的策略包括 、 和笔划/像素精确度 。 5、 所谓齐次坐标就是用 维向量表示一个n 维向量。 6、 投影变换的要素有:投影对象、 、 、投影线和投影。 7、 输入设备在逻辑上分成定位设备、描画设备、定值设备、 、拾取设备 和 。 8、 人机交互是指用户与计算机系统之间的通信,它是人与计算机之间各种符号和动作 的 。 9、 按照光的方向不同,光源分类为: , , 。 10、从视觉的角度看,颜色包含3个要素:即 、 和亮度。 二、单项选择题(每题 2分,共 30 分。请将正确答案的序号填在 题后的括号内) 1、在CRT 显示器系统中,( )是控制电子束在屏幕上的运动轨迹。 A. 阴极 B. 加速系统 C. 聚焦系统 D. 偏转系统 2、分辨率为1024×1024的显示器需要多少字节位平面数为16的帧缓存?( ) A. 512KB B. 1MB C. 2MB D. 3MB 3、计算机图形显示器一般使用什么颜色模型?( ) A. RGB B. CMY C. HSV D. HLS 4、下面哪个不属于图形输入设备?( ) A. 键盘 B. 绘图仪 C. 光笔 D. 数据手套 5、多边形填充算法中,错误的描述是( )。 A. 扫描线算法对每个象素只访问一次,主要缺点是对各种表的维持和排序的耗费较大 B. 边填充算法基本思想是对于每一条扫描线与多边形的交点,将其右方象素取补 C. 边填充算法较适合于帧缓冲存储器的图形系统

计算机图形学实验报告

目录

实验一直线的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(); }

计算机图形学实验二

实验报告 课程名称:计算机图形学 实验项目:区域填充算法 实验仪器:计算机 系别:计算机学院 专业:计算机科学与技术 班级姓名:计科1602/ 学号:2016011 日期:2018-12-8 成绩: 指导教师:

一.实验目的(Objects) 1.实现多边形的扫描线填充算法。 二.实验内容 (Contents) 实现多边形的扫描线填充算法,通过鼠标,交互的画出一个多边形,然后利用种子填充算法,填充指定的区域。不能使用任何自带的填充区域函数,只能使用画点、画线函数或是直接对图像的某个像素进行赋值操作;

三.实验内容 (Your steps or codes, Results) //widget.cpp //2016CYY Cprogramming #include"widget.h" #include #include #include using namespace std; #define H 1080 #define W 1920 int click = 0; //端点数量 QPoint temp; QPoint first; int result = 1; //判断有没有结束 int sign = 1; //2为画线 int length = 5; struct edge { int ymax; float x; float dx; edge *next; }; edge edge_; QVector edges[H]; QVector points;//填充用 bool fin = false; QPoint *Queue = (QPoint *)malloc(length * sizeof(QPoint)); //存放端点的数组 Widget::Widget(QWidget *parent) : QWidget(parent) { } Widget::~Widget() { } void Widget::mouseMoveEvent(QMouseEvent *event) { setMouseTracking(true); if (click > 0 && result != 0) { startPt = temp; endPt =event->pos(); sign = 2; update(); } } void Widget::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { } else if (event->button() == Qt::RightButton) { sign = 2;

计算机图形学实验报告记录

计算机图形学实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

计算机图形学实验报告 姓名:___ __________ 学号:_____ ________ 班级:______ _______ 时间:_____2016年12月_________

实验一OpenGL编程与图形绘制 1.实验目的 了解OpenGL编程,并熟悉OpenGL的主要功能、绘制流程和基本语法。学会配置OpenGL环境,并在该环境中编程绘图。 2.实验内容 OpenGL的主要功能:模型绘制、模型观察、颜色模式、光照应用、图像效果增强、位图和图像处理、纹理映射、实时动画和交互技术。 OpenGL的绘制流程分为两个方面:一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件;OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。 OpenGL的基本语法中相关库有:OpenGL核心库:gl、OpenGL实用程序库:glu、OpenG 编程辅助库:aux、OpenGL实用程序工具包(OpenGL utility toolkit,GLUT):glut、Windows 专用库:wgl。 OpenGL的基本语法中命名规则为:OpenGL函数都遵循一个命名约定,即采用以下格式:<库前缀><根命令><可选的参数个数><可选的参数类型>。 了解了上述基础知识后,配置好OpenGL环境,然后在该环境中编程练习图形的绘制,本次实验主要是对点的绘制、直线的绘制和多边形面的绘制。 3.实验代码及结果 3.1点的绘制: #include 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 Display(void) {

计算机图形学课程参考文献

《计算机图形学》课程参考文献 [1 Kenneth R. Castleman, “Digital Image Processing”, Prentice-Hall International,Inc, 1996 [2] James Sharman. The Marching Cubes Algorithm[EB]. https://www.360docs.net/doc/9217424164.html,/. [3] William E. Lorensen, Harvey E. Cline. Marching Cubes: A High Resolution 3D Surface Construction Algrorithm[J].Computer Graphics, 1987, 21(4). [4] Jan Horn. Metaballs程序[CP]. http://www.sulaco.co.za. [5] 唐泽圣,等.三维数据场可视化[M].北京:清华大学出版社,1999.177-179. [6] 白燕斌,史惠康,等.OpenGL三维图形库编程指南[M].北京:机械工业出版社,1998. [7] 费广正,芦丽丹,陈立新.可视化OpenGL程序设计[M].北京:清华大学出版社,2001. [8] 田捷,包尚联,周明全.医学影像处理与分析[M].北京:电子工业出版社,2003. [9] 三维表面模型的重构、化简、压缩及其在计算机骨科手术模拟中的应用[R]. https://www.360docs.net/doc/9217424164.html,/~yike/uthesis.pdf ; [10] 首套中国数字化可视人体二维图像[DB]. http://www.chinesevisiblehuman. com/ pic/pictype.asp [11] 季雪岗,王晓辉,张宏林,等.Delphi编程疑难详解[M].北京:人民邮电出版社,2000. [12] 郑启华.PASCAL程序设计(第二版)[M].北京:清华大学出版社,1996. [13] 涂晓斌,谢平,陈海雷,蒋先刚.实用微机工程绘图实验教程[M].西南交通大学出版社,2004,4. [14] David F.Rogers.计算机图形学算法基础[M].北京:电子工业出版社,2002. [15] 李信真,车刚明,欧阳洁,封建湖.计算方法[M].西安:西北工业大学出版社,2000. [16] Paul Bourke Polygonising a scalar field [CP]. http://astronomy. https://www.360docs.net/doc/9217424164.html,.au/ ~pbourke/ modelling/polygonise/ [17] 刘骏.Delphi数字图像处理及高级应用[M].北京:科学出版社,2003. [18] 李弼程,彭天强,彭波,等.智能图像处理技术[M].北京:电子工业出版社,2004. [19] Kenneth R.Castleman著,朱志刚,石定机,等译.数字图像处理[M].北京:电子工业出版社,2002. [20] Milan Sonka, Vaclav Hlavac, Roger Boyle.Image Processing, Analysis, and Machine Vision [M].北京:人民邮电出版社,2003. [21] 阮秋奇.数字图像处理学[M]. 北京:电子工业出版社, 2001. [22] 刘宏昆,等.Delphi应用技巧与常见问题[M]. 北京:机械工业出版社, 2003. [23] 张增强,李鲲程,等.专家门诊—Delphi开发答疑300问[M].北京:人民邮电出版社,2003.6.

计算机图形学实验报告

计算机图形学 实验报告 姓名:谢云飞 学号: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;

一种基于计算几何方法的最小包容圆求解算法.kdh

2007年 工 程 图 学 学 报2007 第3期 JOURNAL OF ENGINEERING GRAPHICS No.3一种基于计算几何方法的最小包容圆求解算法 张 勇, 陈 强 (清华大学机械工程系先进成形制造重点实验室,北京 100084) 摘要:为实现点集最小包容圆(最小外接圆)的求解,将计算几何中的α-壳的概 念应用到最小包容圆的计算过程,提出了一种精确有效的最小包容圆求解算法。根据α-壳定 义及最小包容圆性质,证明当1/α等于最小包容圆半径时点集的α-壳顶点共圆,1/α小于最小 包容圆半径时α-壳不存在,1/α大于最小包容圆半径时随着1/α减小α-壳顶点数逐渐减小的规 律。将α-壳顶点数目作为搜索最小包容圆半径的依据,实现了最小包容圆半径的搜索和最小包容圆的求解。 关键词:计算机应用;优化算法;计算几何;最小包容圆;α-壳 中图分类号:TP 391 文献标识码:A 文章编号:1003-0158(2007)03-0097-05 Algorithm for Minimum Circumscribed Circle Detection Based on Computational Geometry Technique ZHANG Yong, CHEN Qiang ( Key Laboratory for Advanced Manufacturing by Materials Processing Technology, Department of Mechanical Engineering, Tsinghua University, Beijing 100084, China ) Abstract: α-hulls are applied to calculate the minimum circumscribed circle (MCC) of point set and an accurate and effective method for MCC detection is established through finding the least squares circle of the point set and iteratively approaching the MCC with recursive subdivision. Several theorems concerning the properties of α-hulls are presented. If 1/α is equal to the radius of points’ MCC, all vertices of the α-hull will be on the same circle. When 1/α is larger than the MCC’s radius, the number of vertices of α-hulls will decrease with decreasing of 1/α, and the number of vertices’ number will reach zero when 1/α is smaller than MCC’s radius. From the above rules, an algorithm for detecting MCC is developed, and experimental results show this algorithm is reliable. Key words: computer application; optimized algorithm; computational geometry; minimum circumscribed circle; α-hull 收稿日期:2005-12-20 基金项目:国家自然科学基金资助项目(50275083);高校博士点基金资助项目(20020003053)

计算机图形学课程设计报告简单图形的绘制-

《计算机图形学》课程设计 报告 学生姓名:学号: 学院: 班级: 题目: 简单图形的绘制 职称2015年7月1日

目录 目录............................................................................................... I 一、选题背景 (1) 二、算法设计 (2) 2.1 绘制直线、圆、椭圆、抛物线 (2) 2.1.1 绘制直线 (2) 2.1.2 绘制圆 (2) 2.1.3 绘制椭圆 (2) 2.1.4 绘制抛物线 (2) 2.2 三维几何变换 (2) 三、程序及功能说明 (5) 3.1 绘制直线、圆、椭圆、抛物线...... (5) 3.1.1 绘制直线 (5) 3.1.2 绘制圆 (5) 3.1.3 绘制椭圆 (5) 3.1.4 绘制抛物线 (6) 3.2 图形的平移 (6) 3.3 图形的旋转 (6) 3.4 图形的缩放 (7) 四、结果分析 (7) 4.1 绘制直线、圆、椭圆、抛物线 (7) 4.1.1 直线 (7) 4.1.2 圆 (8)

4.1.3 椭圆 (8) 4.1.4 抛物线 (8) 4.2 图形的平移 (9) 4.3 图形的旋转 (10) 4.4 图形的缩放 (11) 五、总结 (10) 六、课程设计心得体会 (14) 参考文献 (15) 源程序 (16)

一、选题背景

二、算法设计 2.1 绘制直线、圆、椭圆、抛物线 2.1.1 绘制直线 通过两个点的坐标来绘制直线。计算机图形学中二维图形在显示输出之前需要扫描转换,生成直线的算法一般有DDA 算法和中点算法。 2.1.2 绘制圆 通过运用圆的参数方程cos ;sin x a r y b r θθ=+=+来绘制圆的图形,其中[0,2]θπ∈, (a,b )为圆心,r 为半径,运用参数方程,只需要确定半径的长度和圆心的位置,即可绘制出圆。 2.1.3 绘制椭圆 通过运用椭圆的参数方程cos ;sin x a y b θθ==来绘制椭圆的图形,其中 [0,2]θπ∈,是已知的变量,a ,b 分别为长半轴,短半轴,当确定a 和b 后,通过参数方程即可得到这个椭圆的方程。 2.1.4 绘制抛物线 根据点绘制抛物线图像是通过拟合完成,根据三个点的坐标,通过数据拟合,得到经过这三个点的函数关系式,从而再根据这个函数关系式绘制出抛物线上其他的点,形成一条连续的抛物线;或直接根据已知函数绘制图像是通过已知函数画出图像。 2.2 三维几何变换 三维几何变换是二维几何变换的推广。二维几何变换在齐次坐标空间中 可用3?3的变换矩阵表示,类似的,三维几何变换在齐次坐标空间中可用4?4的变换矩阵表示。三维空间中的点(),,x y z 的齐次坐标定义为(),,h h h x y z ,其中,h 为不等与零的任意常数,h x hx =,h y hy =,h z hz =。亦即点(),,x y z 对应4维齐次坐标空间的一条直线:

图形学模拟试题 (含答案)

计算机图形学课程模拟试卷(参考答案含评分标准) 2010—2011学年第二学期 年级专业学号姓名得分 一、简要回答题(每题7分,共7题,共49分) 1.被誉为“图形学之父”的伊万?萨瑟兰(Ivan Sutherland)对计算机图形学理论和 应用的主要贡献有哪些? 答:(1)(3分)萨瑟兰在MIT攻读博士学位时,在著名的林肯实验室完成基于光笔的交互式图形系统:Sketchpad。这一系统中许多交互式图形设计的创意是革命性的,它的影响一直延续到今天。 (2)(4分)用于显示立体和彩色图像的“Lorgnette”技术和一系列图形图像算法,如分区编码的直线段裁剪算法、多边形裁剪算法、曲面的表示和消除隐藏线算法等等。 2.有人认为图形学算法主要依赖于点和向量的数学运算,你是否认同这一观点?给出 同意或反对的理由,并举例说明。 答:这一观点是正确的(2分),主要理由和举例如下(5分): (1)图形学的很多算法属于几何算法,点(从三维、二维到一维)是最基本的几何要素,也是统一基本几何的计算机表示形式。例如,在观察流水线上的主要图形学算法,无 论是表示和生成(显示)、建模(造型)、变换(包括投影、观察、消隐)都可以统 一到建立基于点的几何模型;(可以以典型的光栅图形学的算法如基本图形的生成和 变换、三维观察、Z-Buffer算法为例说明) (2)向量几何是图形学的重要数学基础、建立了以“方向性”概念的基本理论、思想方法、几何结构、几何算法与复杂性分析的几何计算理论体系。例如,借助向量几何可以将 二维布尔运算降为一维向量计算、将三维布尔运算下降为二维布尔运算、将三维消隐 算法最终归结为一维交集算法等等,从而使几何计算的复杂性大为简化。(可以以比 较典型的Liang-Barsky裁剪算法、三维实体造型CSG树生成,隐藏线消除算法等为例 说明)。 『评分说明』若认为这一观点是错误的或持有含糊的态度,且给出的例子是片面的、主观的,则本题不得分。其他错误情况者,如未举例说明,酌情扣2分左右。 3.针对多面体模型,直接用简单光照模型绘制会有什么问题?简述两种增量式光照明 模型(多边形绘制)的基本思想,并指出两个算法的主要区别。 答: (1)(3分)针对多面体模型,使用简单光照模型绘制会在多边形与多边形之交界处产生明暗的不连续变化,影响了曲面的显示效果,即马赫带效应。如果增加多边形个数,减小每个多边形的

计算机图形学实验报告

计算机图形学 实验报告 学号:20072115 姓名: 班级:计算机 2班 指导老师:何太军 2010.6.19

实验一、Windows 图形程序设计基础 1、实验目的 1)学习理解Win32 应用程序设计的基本知识(SDK 编程); 2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构; 5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对话框); 6)学习使用MFC 的图形编程。 2、实验内容 1)使用WindowsAPI 编写一个简单的Win32 程序,调用绘图API 函数绘制若干图形。(可选任务) 2 )使用MFC AppWizard 建立一个SDI 程序,窗口内显示"Hello,This is my first SDI Application"。(必选任务) 3)利用MFC AppWizard(exe)建立一个SDI 程序,在文档视口内绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆弧、填充、文字等),练习图形属性的编程(修改线型、线宽、颜色、填充样式、文字样式等)。定义图形数据结构Point\Line\Circle 等保存一些简单图形数据(在文档类中),并在视图类OnDraw 中绘制。 3、实验过程

1)使用MFC AppWizard(exe)建立一个SDI 程序,选择单文档; 2)在View类的OnDraw()函数中添加图形绘制代码,说出字符串“Hello,This is my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制; 3)在类视图中添加图形数据point_pp,pp_circle的类,保存简单图形数据,通过在OnDraw()函数中调用,实现线、圆的绘制。 4、实验结果 正确地在指定位置显示了"Hello,This is my first SDI Application"字符串,成功绘制了圆,椭圆,方形,多边形以及曲线圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成了实验。 结果截图: 5、实验体会 通过实验一,了解了如用使用基本的SDI编程函数绘制简单的图

计算机图形学课程设计书

计算机图形学课程设计 书 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

课程设计(论文)任务书 理学院信息与计算科学专业2015-1班 一、课程设计(论文)题目:图像融合的程序设计 二、课程设计(论文)工作: 自2018 年1 月10 日起至2018 年1 月12日止 三、课程设计(论文) 地点: 2-201 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)熟悉Delphi7的使用,理论与实际应用相结合,养成良好的程序设计技能;(2)了解并掌握图像融合的各种实现方法,具备初步的独立分析和设计能力;(3)初步掌握开发过程中的问题分析,程序设计,代码编写、测试等基本方法;(4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; (5)在实践中认识、学习计算机图形学相关知识。 2.课程设计的任务及要求 1)基本要求: (1)研究课程设计任务,并进行程序需求分析; (2)对程序进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码; (4)程序组装,测试、完善系统。 2)创新要求: 在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。

3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写课程设计论文 (2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成 4)参考文献: (1)David ,《计算机图形学的算法基础》,机械工业出版社 (2)Steve Cunningham,《计算机图形学》,机械工业出版社 (3) 5)课程设计进度安排 内容天数地点 程序总体设计 1 实验室 软件设计及调试 1 实验室 答辩及撰写报告 1 实验室、图书馆 学生签名: 2018年1月12日 摘要 图像融合是图像处理中重要部分,能够协同利用同一场景的多种传感器图像信息,输出一幅更适合于人类视觉感知或计算机进一步处理与分析的融合图像。它可明显的改善单一传感器的不足,提高结果图像的清晰度及信息包含量,有利于更为准确、更为可靠、更为全面地获取目标或场景的信息。图像融合主要应用于军事国防上、遥感方面、医学图像处理、机器人、安全和监控、生物监测等领域。用于较多也较成熟的是红外和可见光的融合,在一副图像上显示多种信息,突出目标。一般情况下,图像融合由

《计算机图形学》复习试题

计算机图形学模拟试卷 计算机图形学课程试卷(卷) 注意:1、本课程为必修(表明必修或选修),学时为 51 ,学分为 3 2、本试卷共 3 页;考试时间 120 分钟;出卷时间:年 12 月 3、姓名、学号等必须写在指定地方;考试时间:年 1 月 11 日 4、本考卷适用专业年级:任课教师: (以上内容为教师填写) 专业年级班级 学号姓名 一、名词解释(15分) 1.国际标准化组织(ISO)对计算机图形学的定义

2.象素图 3.正投影 4.纹理 5.位图 二、写出下列述语的全称及中文含义。 1、GKS (Graphics Kernel System):图形核心系统 2、PHIGS(Programmer's Hierarchical Interactive Graphics System):程序员级分层结构交互图形系统 (Programmer's Hierarchical Interactive Graphics Stander):面向程序员的层次交互图形标准 3、CAD (Computer Assistant Design):计算机辅助设计 4、CAM (computer Aided Manufacturing):计算机辅助制造 5、CAGD (Computer Aided Geometric Design):计算机辅助几何设计 6、CIMS (Computer Integrated Manufacturing Systems):计算机集成制造系统 7、API (Application Programming Interface):应用程序编程接口 8、DPI (Dot Per Inch):指在每英寸长度内的点数。 9、CPU (Central Processing Unit):中央处理器 10、DPU (Distributed Processor Unit):数据保护单元 11、MBR (Minimum Bounding Rectangle) :最小外包矩形 12、CRT (Cathode Ray Tube):阴极射线管 13、LED (Light Emitting Diode):发光二极管

相关文档
最新文档