计算机图形学名词解释

计算机图形学名词解释
计算机图形学名词解释

第一章:

计算机图形学:怎样用计算机生成、处理和显示图像的学科。

图形:能够在人们视觉系统中形成视觉印象的对象称为图形,包括自然景物和人工绘图。

数字图像处理:针对图像进行各种加工以改善图像的效果,为图像分析做准备。

位图:显示屏幕上的矩形阵列的0,1表示。

图形:计算机图形学的研究对象,能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形等等

像素:构成屏幕(图像)的最小元素。

分辨率:阴极射线管在水平或垂直方向单位长度上能识别的最大像素个数。

颜色查找表:是一维线性表、其每一项的内容对应一种颜色,其长度由帧缓存单元的位数决定。

作用:在帧缓存单元位数不增加的情况下,具有大范围内挑选颜色的能力;对颜色进行索引光栅扫描式图形显示器(画点设备):

帧缓存(数字设备)+寄存器+DAC(数模转换)+电子枪+光栅显示器(模拟设备)

具有N个位面的帧缓存,颜色查找表至少有N位字宽(实际为W,W>N),有2n项,可同时显示2n个颜色(灰度级),总共可以有2w个。

(全色光栅扫描图形显示器/全色帧缓存:三种原色电子枪,每种原色的电子枪有8个位面,组合成224种颜色,帧缓存至少为24位,每组原色配一个颜色查找表)

显卡作用:根据CPU提供的指令和有关数据将程序运行过程和结果进行相应处理、并转换成显示器能够接受的文字和图形显示信号,通过屏幕显示出来。

虚拟现实系统:由计算机生成的一个实时的三维空间。

虚拟现实系统的3I特性:沉浸(immersion)、交互(interaction)、想象(imagination)

第二章:

图形标准:图形系统及其相关应用系统中各界面之间进行数据传送和通信的接口标准,以及供

图形应用程序调用的子程序功能及其格式标准。前者称为数据及文件格式标准,后者称为子程序界面标准。

(计算机图形接口(CGI)、计算机图元文件(CGM)、图形核心系统(GKS)、程序员层次交互式图形系统(PHIGS)、基本图形转换规范(IGES)、产品数据模型转换标准(STEP)、计算机图形参考模型(CGRM))

图形系统标准的作用:方便不同系统间的数据交换;方便程序移植;硬件隔离,实现图形系统的硬件无关性。(提高图形软件、应用软件、相关开发人员在计算机系统和图形设备之间的可移植性)

计算机图形接口(CGI):使应用程序和图形库直接与各种不同的图形设备相作用,使其在各种图形设备上不经修改就可以运行。

计算机图元文件(CGM):提供了一个在虚拟设备接口上存贮与传输图形数据及控制信息的机制

第三章:

用户接口的常用形式:

子程序库:使用方便,但需要用户熟悉某种通用程序设计语言,如OpenGL

专用语言:一般为解释性语言,如VRML

交互命令:图形界面或命令行方式,进行人机交互

图段:具有相同属性的一组输出图元的集合。

交互设备与交互任务:定值、笔画、定位、选择、拾取、字符串

交互技术:集合约束、拖拽、三维输入。(选择、定位、定向、定路径、定量、文本、橡皮筋、徒手画、拖动)

拾取图形:点拾取、符号及集拾取、直线段拾取、折线集拾取、曲线拾取、字符串拾取、多边形拾取、重叠图形拾取、三维图形拾取。(加速图形拾取的措施:过滤器、区域粗判、硬件实现)

输入控制(画图说明):请求方式(程序初始化设备)、取样方式(程序和设备同时工作)、事件方式(设备初始化程序)

第四章:

区域填充的几种算法:活性边表法;边填充算法;栅栏填充算法;边标志算法;种子填充算法;扫描线种子填充算法。

图形的扫描转换/光栅化:确定一个像素集合及其颜色,用于显示一个图形的过程。

裁剪:确定一个图形的哪些部分在窗口内,必须显示;哪些部分在窗口外,不该显示的过程。多边形填充:把多边形的顶点表示转换为点阵表示。即从多边形的给定边界出发,求出位于其内部的各个像素,并将帧缓冲器内的各个对应元素设置相应的灰度或颜色。

4连通的区域:取区域内任意两点,在该区域内若从其中一点出发通过上、下、左、右四种运动可到达另一点。

8连通区域:取区域内任意两点,若从其中任一点出发,在该区域内通过沿水平方向、垂直方向和对角线方向的八种运动可到达另一点。

线宽处理:线刷子、方刷子、区域填充

走样(混淆):用离散量(像素)表示连续的量(图形)而引起的失真。

反走样:用于减少或消除失真效果的技术。(提高分辨率、简单区域取样、加权区域取样、不

同灰度表示)

走样现象:阶梯状边界;狭小图形遗失;图形细节失真

第六章:

位置矢量:曲线上任意一点的坐标可用矢量p(t)表示,p(t)=[x(t),y(t),z(t)]。

切矢量:方向曲线的切线方向的矢量成为切矢量。

挠率:副法线方向(或密切平面)对于弧长的转动率。

曲率:曲线的弯曲程度。(曲线上两点的切矢量夹角与两点间弧长的比值)

插值:给定一组有序的数据点Pi,i=0, 1, …, n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。(线性插值;抛物线插值)

逼近:型值点(插值点)比较多时,很难用低次函数进行内插,因此可选用一个低次函数尽量的逼近这些点。(最小二乘法)

光顺:指曲线的拐点不能太多。(光顺的条件:具有二阶几何连续性G2;不存在多余拐点和奇异点;曲率变化较小)

拟合:构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点),所构造的曲线为拟合曲线。(可用插值和逼近实现)

参数连续性:如果曲线P=P(t)在t=t0处满足左右n阶导矢均存在且相等,则称曲线P(t)在t=t0处是n阶参数连续的,或称C n连续。

(C0连续和G0连续:两条线端点重合;

C1连续:端点重合处切矢量方向相同,大小相等;

G1连续:端点重合处切矢量方向相同,大小不等;

G2连续:二阶导矢方向相同,大小不等)

Bernstein基函数的性质:正性、权性、对称性、递推性、导函数

Bezier曲线的性质:端点性质(端点位置矢量:曲线端点与特征多边形端点重合;切矢量:端点处切矢量方向与特征多边形第一条/最后一条边走向一致;曲率)、对称性、凸包性、几何不变性、变差缩减性。

Bezier曲线的缺点:缺少局部性;曲线与控制多边形的逼近程度较差;表示复杂形状较难

B样条曲线的性质:局部性;连续性;几何不变性;变差缩减性;造型的灵活性

区分均匀/非均匀B样条函数:均匀:节点沿参数轴是均匀等距分布的;非均匀:节点沿参数轴的分布式不等距的。

第七章:

窗口区和视图区的坐标变换:

齐次坐标:用n+1维向量表示n为向量。

(齐次坐标的优越性:

提供了用矩阵运算进行图形变换的有效方法;

表达的一致性,便于硬件运算;

简化了复合图形变换的形式,提高了效率;

可以表达无穷远点。)

用户域:程序员用来定义草图的整个自然空间。

窗口区:用户指定的任一区域叫做窗口。

屏幕域:设备输出图形的最大区域,是有限的整数域。

视图区:任何小于或等于屏幕域的区域都成为视图区。

图形变换:是指对图形的几何信息经过几何变换后产生新的图形。

仿射变换:形式为x’=ax+by+c,y’=dx+ey+f的坐标变换称为二维仿射变换。

投影变换:把三维物体变为二维图形表示的过程称为投影变换。(平行投影;透视投影)(一点透视投影线方程:X S=X C+(X-X C)t)

灭点:透视投影的视线(投影线)是从视点(观察点)出发,视线是不平行的。不平行于投影平面的平行线投影后汇聚的一点称为灭点,在坐标轴上的灭点叫做主灭点。(按照主灭点的个数,透视投影可分为一点透视、二点透视和三点透视)

投影空间:相对于二维的窗口概念,三维的投影窗口称为投影空间。

观察坐标系:视点在该坐标系的原点,投影平面与xOy平面平行的左手坐标系,是一个过渡坐标系。

不改变图形大小和形状的变换:平移;旋转;对称(比例变换不改变形状,但改变大小)

不改变图形角度关系的变换:平移;旋转;对称;比例(错切改变角度关系)

(拓扑不变的几何变换不改变图形的连接关系和平行关系。)

第八章:

几何造型:利用点、线、面、体等几何元素,经过平移、旋转、比例等几何变换和交、叉、并等集合运算,产生实际或想象的物体模型。(三维几何造型:实体造型、曲面造型)

正则形体:对于任一形体,如果它是3维欧氏空间R3中非空、有界的封闭子集,且其表面任意一点的足够小的邻域在拓扑上应该是一个等价的封闭圆,我们称该形体为正则形体,否则称为非正则形体。

控制点:用来确定曲线和曲面的位置与形状,相应的曲线和曲面不一定经过的点。

型值点:用来确定曲线和曲面的位置与形状,相应的曲线和曲面一定经过的点。

(考点:控制点和型值点的区别)

插值点:为提高曲线和曲面的输出精度,在型值点之间插入的一系列点。

体素:可以用有限个尺寸参数定位和定形的体。(来源:从实体中选择出来;参数轮廓线扫描产生;代数半空间定义)

线框模型:用顶点和邻边来表示形体;

表面模型:用有向棱边围成的部分来定义形体表面,由面的集合来定义形体;

实体模型:明确定义了表面的那一侧存在形体。

(在表面模型基础上定义实体模型的三种方法:a.在定义表面的同时,给出实体存在一侧的一点P;b.直接用表面的外法矢量来指明实体存在的一侧;c.用有向棱边的方向表示外法矢方向,右手法则确定外法矢量)

构造实体几何:将一些简单的基本体素通过正则集合运算来构造、表示新的物体。

拓扑信息:物体的拓扑信息是指物体上所有的顶点、棱边、表面之间是怎样连接到

欧拉公式:V-E+F=2;V-E+F=2(S-H)+R

第九章:

真实图形:经过消影的投影图称为物体的真实图形。

明暗效应:对光照射到物体表面所产生的反射或透射现象的模拟。

明暗模型(光照模型):泛光;漫反射;镜面反射

泛光:光是来自四面八方的,它在各个方向都有均匀的光照强度

颜色:人的视觉系统对所接受到的光信号产生的一种感觉,不同波长的光信号带给人不同的颜色感受

光效率函数:它表示人眼感受各种波长的光的敏感度。反映了不同波长的光刺激人眼产生亮度的效率。

颜色模型:指的是某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色。目的是在某个颜色域中方便的指定颜色。

基色:在颜色模型中,用来生成其它颜色的两种或三种颜色称为基色

CIE:国际照明委员会

纹理:是物体表面的细小结构

纹理映射:是把纹理图象值映射到三维物体的表面的技术

颜色查找表有什么作用?一个有8个位面的帧缓存,可以表达2的24次方种颜色的显示系统,其颜色查找表应该有多少位?多少项?能够同时显示的颜色数是多少?

图形标准化的目的是什么?常用的国际标准和事实上的工业标准有哪些?各有什么作用?

举例说明用户接口的常用形式,并简单说明各有什么特点。

交互式图形系统中输入控制的方式有哪些?简要描述每种输入控制方式的一般过程。

简答:

如果彩色显示器有R,G,B三个电子枪,每个电子枪有8个位面的帧缓存,和10个位面的颜色查找表,这种显示器可同时显示多少种颜色?最多可显示多少种颜色?

可以同时显示224种颜色;最多230种颜色.

简要描述计算机图形学和数字图像处理之间的关系(文字或图示)

计算机图形学是用计算机生成、处理和显示图像,是模型到图像的过程;图像处理是通过计算机及有关数字技术对图像进行运算和处理,是图像到图像的过程。

计算机图形的标准有哪些?各有什么作用?

CGI:使应用程序和图形库直接与各种不同的图形设备相作用,使其在各种图形设备上不经修改就可以使用。

CGM:把不同图形系统所产生的图形集成到一起。

GKS:提供了应用程序和输入输出设备之间的接口。

PHIGS:提供了动态修改和绘制显示图形数据的手段。

IGES:在不同的CAD/CAM系统之间交换数据。

STEP:扩大转换CAD/CAM系统中几何、拓扑数据的范围。

CGRM:比较现有和将来的计算机图形标准、描述它们之间的关系

简述三种基本输入控制方式的流程和特点。

请求方式:此时只有输入方式设置的命令对相应的设备设置需要的输入方式,该设备才能作相应的输入处理;(程序驱动设备)

取样方式:一旦对一台计算机设置取样方式,立即就可以进行数据输入,而不必等待程序的输入语句。即信息的输入和应用程序的输入命令无关,当应用功能程序遇到取样命令时,就

把相应的物理设备此时的值作为取样数值。

事件方式:当一台设备被设置为事件方式时,设备和程序并行工作。所有被设置成事件方式的输入数据都被存放在一个事件队列中,该队列是以事件发生的次序排列的。

什么是(反)走样?常用的反走样算法有哪些?

用离散量表示连续量时引起的失真叫作走样。用于减少和消除这种现象的技术叫作反走样。反走样算法:提高分辨率;简单区域取样;加权区域取样;用不同灰度表示

什么是4连通?什么是8连通?

四连通:从区域内一点出发,可以上下左右移动到达其他区域。

八连通:区域内每一像素可以通过八个方向移动组合到达。

RGB颜色模型为什么不能表达自然界中所有的颜色?

只有CIE模型可以表示自然界中的所有颜色,RGB所表示的颜色范围是CIE模型的子集。在进行多边形扫描填充时,对边界的填充要遵循什么样的原则?为什么?

原则:右边界和上边界的像素不填充,左边界和下边界的像素填充。左闭右开,下闭上开。

原因:避免扩大或缩小像素区域。

写出bresenham算法和中点画线法对直线进行扫描转换的基本过程。

Bresenham算法:通过各行、各列像素中心构造一组虚拟纵横网格线,按直线从起点到终点顺序,计算各垂直网格线交点,然后确定该列像素中与此交点最近的像素。

中点画线算法:下一个与直线最近的像素为正右方像素(x+1,y)或右上方像素(x+1,y+1),取二者中点(x+1,y+0.5),带入直线方程ax+by+c=0,比较该点与直线的相对方位,如果中点在直线下方,则取(x+1,y+1)为下一像素;否则取(x+1,y)为下一像素

详细说明多边形活化边表填充算法。(关键数据结构绘图说明)

按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的像素,即完成填充工作。对于一条扫描线填充过程可以分为四个步骤:

(1)求交:计算扫描线与多边形各边的交点

(2)排序:把所有交点按递增顺序进行排序

(3)配对:第一个与第二个,第三个与第四个。。。每对交点就代表扫描线与多边形的一个相交区间。

(4)填充:把这些相交区间内的像素置成多边形颜色,把相交区间外的颜色置成背景颜色

存在问题:多边形顶点与扫描线相交,交点数量计算不当会产生交点配对错误;边界像素是否填充,处理不当会造成填充不足或填充范围扩大。

解决方法:顶点:共享顶点的两条边落在顶点两侧,则算一个交点;共享顶点的两条边落在顶点同侧,若都在顶点上方,则算两个交点,若都在顶点下方,则算0个交点;边界:下闭上开,左闭右开

算法步骤:

1.(AET初始化)将边的活性边表AET设置为空;

2.(y初始化)取扫描线纵坐标y的初始值为新边表NET中非空元素的最小序号;

3.按顺序对纵坐标值为y的扫描线(当前扫描线)执行下列步骤,直到NET和AET都变成空为

止:

①将AET中满足y=ymax的边删去;

②如果NET中的第y行元素非空,则将属于该行的所有边从NET中取出并插入AET中,AET

中的各边按照x值(当x的值相等时,按Δx值)递增方向排序;

③若相对于当前扫描线,AET非空,则将AET中的边两两依次配对,即第1,2边为一对,

第3,4边为一对,依此类推。每一对边与当前扫描线的交点所构成的区段位于多边形内,依次对这些区段上的点(像素)按多边形属性着色;

④ 将AET 剩下的每一条边的x 域累加Δx ,即令x=x+Δx ;

⑤ 将当前的扫描线的纵坐标值y 累加,即y=y+1。

P6P1

P4P5P3P4△x y ma x △x y ma x AET )

123

4

5

6

7

8

(NET ) 活性边表:优点:充分利用了多边形各边的连续性及扫描线的连续性,减少了求交运算,提高了效率。缺点:数据结构复杂,只适宜纯软件方式实现,难以硬件实现,对各种表的维持和排序开销大。

写出种子点填充算法的基本流程,并说明缺点及改进方法。

种子像素入栈,当栈非空时执行如下操作:

(1) 栈顶像素出栈

(2) 讲出栈像素设置为多边形颜色

(3) 按左上右下顺序检索与出栈像素相邻的4个像素,若其中某个像素不在边界或未设

置成多边形颜色,则把该像素入栈

(4) 重复步骤(1)--(3)

缺点:多个像素重复入栈,算法效率低,要求很大的存储空间

改进:扫描线种子填充算法

说明编码裁剪算法(Cohen-SutherLand 算法)的原理、优缺点及改进算法。

原理:对窗口及其延长线分割出的平面9个区域进行编码,根据线段两个端点的编码判断其与窗口之间的关系。算法如下:

① 对线段的两个端点P 1、P 2进行按其所处的位置进行编码,分别记为code1、code2; ② 如果code1=0且code2=0,说明线段在窗口内,全部可见;否则到③;

③ 若code1&code2≠0,则说明线段在某一窗口边的延长线的外侧,全部不可见;否则到④; ④ 在线段与窗口延长线的交点处把线段分为两段,并对两段分别编码。其中交点看作是两个点,一个在与之相交的窗口延长线外侧,一个在内侧。两段线段分别进行①~④的判断过程,则其中一段必然符合③的条件,可弃之;另一段重复①~④的处理,直到剩余部分的线段完全可见或完全不可见。

优点:判断关系较快

缺点:对于部分可见的线段需要求交,效率不高

改进算法:中点分割算法

写出一个典型的计算机图形系统的组成结构,并说明各组成部分的功能。

计算机硬件:个人计算机:承载计算机系统软件及图形软件

图形输入输出设备:输入:鼠标、键盘、扫描仪:输入图形到系统

输出:显示器、打印机:将系统中的图形输出

计算机系统软件:计算机的运行

图形软件:对图形进行计算、存储等处理。

如何判断一个凸多面体的某个面是否是自隐藏面。

凸多面体的多个平面定义为

aix+biy+ciz+di = 0 (i=1,2,...,n)

调整方程系数,使物体内部点p0代入方程后

aix0+biy0+ciz0+di > 0

此时,每个平面的法向量(ai,bi,ci)必然是指向物体内部的,设pi为p0在第i面上的垂足,则aixi+biyi+cizi+di = 0

则p0-pi是指向物体内部的面i的法向量,则:

(ai,bi,ci).(p0-pi)

=(aix0+biy0+ciz0+di) - (aixi+biyi+cizi+di ) > 0

所以(ai,bi,ci)与(p0-pi) 的夹角小于90度(二者夹角只能是0)

设视点坐标为(ex,ey,ez),视点与第i个面上的任意一点的连线方向为(li,mi,ni),则当:(ai,bi,ci).(li,mi,ni)<0

时,平面i即为自隐藏面

向量(a,b,c)为第i个面的法向量,视点与第i个面上一点的连线方向为(l,m,n),当点积(a,b,c)·(l,m,n)<0时,平面i为自隐藏面。

计算机图形学作业

计算机图形学第一次作业 计算机X班XXX 1XXX010XXX 1.你是否想用图形学的有关知识去解决一两个实际问题?你想解决的问题是什么?考虑如何解决? 答:我希望可以解决的有设计汽车外壳和制作动画。 解决方法:(1)汽车外壳 使用3D MAX/AutoCAD软件进行设计。 (2)制作动画 利用动画制作软件(3D MAX)在计算机上制作动画 2.某彩色图形显示系统,CRT显示器的分辨率为1024×1024,它可以从2^17次方种颜色中选择出2^15次方来显示,其帧缓冲器的容量应该如何计算?查色表的长度和宽度应为多少? 解:16b==2B 因为分辨率为1024x1024 所以1024*1024*2B=2MB 3.采用Bresenham画线算法,绘出起点(1,3),终点为(9,18)的直线段。 解: void DrawBresenhamline(int x0, int y0, int x1, int y1) { int dx = x1 - x0;//x偏移量 int dy = y1 - y0;//y偏移量 int ux = dx >0 ?1:-1;//x伸展方向 int uy = dx >0 ?1:-1;//y伸展方向 int dx2 = dx <<1;//x偏移量乘2 int dy2 = dy <<1;//y偏移量乘2 if(abs(dx)>abs(dy)) {//以x为增量方向计算 int e = -dx; //e = -0.5 * 2 * dx,把e 用2 * dx* e替换 int x = x0;//起点x坐标 int y = y0;//起点y坐标 for (x = x0; x < x1;x+=ux) { printf ("%d,%d\n",x, y); e=e + dy2;//来自2*e*dx= 2*e*dx + 2dy (原来是e = e + k) if (e > 0)//e是整数且大于0时表示要取右上的点(否则是右下的点) { y += uy; e= e - dx2;//2*e*dx = 2*e*dx - 2*dx (原来是e = e -1) } } } else {//以y为增量方向计算

计算机图形学实验报告

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

计算机图形学期末大作业3D建模

深圳大学实验报告 课程名称:计算图形学 实验名称:3D建模和真实感图形绘制 学院:计算机与软件学院专业:计算机科学与技术报告人:学号:2012150 班级: 1 同组人:无 指导教师:周虹 实验时间:2014年11、12月 实验报告提交时间:2014/12/28 教务处制

一.实验目的 1、使用OpenGL创建和动画你自己设计的角色。 2、熟悉3D层次建模和转换。 二.实验步骤 1、打开VC6.0打开工作空间modeler.dsw, 可以看到工程的所有工程都包含进来了。找到sample.cpp并打开。 2、找到sample.cpp中的draw函数,在这个函数中绘制图形。首先,在一对glPushMatrix()和glPopMatrix()之间用glTranslated函数确定绘制图形坐标系的原点(以下图形的绘制均用到这对函数,后面不再赘述)。然后用三角形绘制平行四边形的地板,用

setDiffuseColor函数设定不同的颜色参数。 主要代码如下: 2、为模型绘制背景,即三角旋转阶梯。同样的,用三角形绘制,使得整个画面看起来像舞台般宽敞华丽。

截断): 拼接柱子,并且颜色设置成黄白相间,使气氛柔和淡雅。

4、柱子一般都有柱台的。此处用长方体作为柱台,大气得体。颜色选择淡蓝色,正好跟柱子的颜色相辉映。 主要代码如下:

5、俗话说好事成双。在同一个层次中,我再绘制了同样的柱子和柱台,使画面呈现对称美。 6、柱子是空心的,得给它加个“盖子”。为了统一柱子的结构,此处依然用三角形拼接柱子的尖顶,尖顶作为柱子的下一个层次。如图:

(完整版)计算机图形学发展综述

计算机图形学发展综述 报告 专业 班级 学生 学号

计算机图形学发展综述 一、计算机图形学历史 1950年,第一台图形显示器作为美国麻省理工学院(MIT)旋风I(Whirlwind I)计算机的附件诞生了。该显示器用一个类似于示波器的阴极射线管(CRT)来显示一些简单的图形。1958年美国Calcomp公司由联机的数字记录仪发展成滚筒式绘图仪,GerBer公司把数控机床发展成为平板式绘图仪。在整个50年代,只有电子管计算机,用机器语言编程,主要应用于科学计算,为这些计算机配置的图形设备仅具有输出功能。计算机图形学处于准备和酝酿时期,并称之为:“被动式”图形学。到50年代末期,MIT的林肯实验室在“旋风”计算机上开发SAGE空中防御体系,第一次使用了具有指挥和控制功能的CRT显示器,操作者可以用笔在屏幕上指出被确定的目标。与此同时,类似的技术在设计和生产过程中也陆续得到了应用,它预示着交互式计算机图形学的诞生。 1962年,MIT林肯实验室的Ivan E.Sutherland 发表了一篇题“Sketchpad:一个人机交互通信的图形系统”的博士论文,他在论文中首次使用了计算机图形学Computer Graphics”这个术语,证明了交互计算机图形学是一个可行的、有用的研究领域,从而确定了计算机图形学作为一个崭新的科学分支的独立地位。他在论文中所提出的一些基本概念和技术,如交互技术、分层存储符号的数据结构等至今还在广为应用。1964年MIT的教授Steven A. Coons提出了被后人称为超限插值的新思想,通过插值四条任意的边界曲线来构造曲面。同在60年代早期,法国雷诺汽车公司的工程师Pierre Bézier发展了一套被后人称为Bézier曲线、曲面的理论,成功地用于几何外形设计,并开发了用于汽车外形设计的

计算机图形学作业-Display-答案分析

计算机图形学作业I 一.判断题 1.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(×) 2.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;(√) 3. 相似变换是刚体变换加上等比缩放变换;(√) 4. 保距变换是刚体变换加上镜面反射;(√) 5. 射影变换保持直线性,但不保持平行性。(√) 二、填空题 1.透视投影的视见体为截头四棱锥形状;平行投影的视见体为长方体形状。 2.字符的图形表示可以分为矢量表示和点阵表示两种形式。 3.仿射变换保持直线的平行性 4.刚体变换保持长度 5.保角变换保持向量的角度 三、单项选择题 1. 分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( D) A. 512KB; B. 1MB; C. 2MB; D. 3MB ; 2. 在透视投影中,主灭点的最多个数是( C ) A 1; B 2; C 3; D 4 3. 以下关于图形变换的论述不正确的是( B ) A. 平移变换不改变图形大小和形状,只改变图形位置; B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系; C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变; 4. 使用下列二维图形变换矩阵:将产生变换的结果为( D ) A. 图形放大2倍; B. 图形放大2倍,同时沿X、Y1个绘图单位; C.沿X坐标轴方向各移动2个绘图单位; D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。 5. 下列有关投影的叙述语句中,正确的论述为(B ) A. 透视投影具有近小远大的特点; B. 平行投影的投影中心到投影面距离是无限的; C. 透视投影变换中,一组平行于投影面的线的投影产生一个灭点; T =

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

《数字图像处理》复习大作业及答案

2014年上学期《数字图像处理》复习大作业及参考答案 ===================================================== 一、选择题(共20题) 1、采用幂次变换进行灰度变换时,当幂次取大于1时,该变换是针对如下哪一类图像进行增 强。(B) A 图像整体偏暗 B 图像整体偏亮 C图像细节淹没在暗背景中D图像同时存在过亮和过暗背景 2、图像灰度方差说明了图像哪一个属性。(B ) A 平均灰度 B 图像对比度 C 图像整体亮度D图像细节 3、计算机显示器主要采用哪一种彩色模型( A ) A、RGB B、CMY或CMYK C、HSI D、HSV 4、采用模板[-1 1]T主要检测( A )方向的边缘。 A.水平 B.45? C.垂直 D.135? 5、下列算法中属于图象锐化处理的是:( C ) A.低通滤波 B.加权平均法 C.高通滤波 D. 中值滤波 6、维纳滤波器通常用于( C ) A、去噪 B、减小图像动态范围 C、复原图像 D、平滑图像 7、彩色图像增强时, C 处理可以采用RGB彩色模型。 A. 直方图均衡化 B. 同态滤波 C. 加权均值滤波 D. 中值滤波 8、__B__滤波器在对图像复原过程中需要计算噪声功率谱和图像功率谱。 A. 逆滤波 B. 维纳滤波 C. 约束最小二乘滤波 D. 同态滤波 9、高通滤波后的图像通常较暗,为改善这种情况,将高通滤波器的转移函数加上一常数量以 便引入一些低频分量。这样的滤波器叫B。 A. 巴特沃斯高通滤波器 B. 高频提升滤波器 C. 高频加强滤波器 D. 理想高通滤波器 10、图象与灰度直方图间的对应关系是 B __ A.一一对应 B.多对一 C.一对多 D.都不 11、下列算法中属于图象锐化处理的是:C A.低通滤波 B.加权平均法 C.高通滤 D. 中值滤波 12、一幅256*256的图像,若灰度级数为16,则存储它所需的比特数是:( A ) A、256K B、512K C、1M C、2M 13、噪声有以下某一种特性( D ) A、只含有高频分量 B、其频率总覆盖整个频谱 C、等宽的频率间隔内有相同的能量 D、总有一定的随机性 14. 利用直方图取单阈值方法进行图像分割时:(B) a.图像中应仅有一个目标 b.图像直方图应有两个峰 c.图像中目标和背景应一样大 d. 图像中目标灰度应比背景大 15. 在单变量变换增强中,最容易让人感到图像内容发生变化的是( C )

计算机图形学实验二报告

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

成绩评定表

曲线拟合 1. 实验内容 1. 绘制三次Bezier曲线 (1)给定四个已知点P1—P4,以此作为控制顶点绘制一段三次Bezier曲线。 (2)给定四个已知点P1—P4,以此作为曲线上的点绘制一段三次Bezier曲线。 2. 绘制三次B样条曲线 给定六个已知点P1—P6,以此作为控制顶点绘制一条三次B样条曲线。 2. 实验环境 软硬件运行环境:Windows XP 开发工具:visual studio 2008 3. 问题分析 1. 绘制三次Bezier曲线 Bezier曲线是用N+1个顶点(控制点)所构成的N根折线来定义一根N阶曲线。本次实验中的三次Bezier曲线有4个顶点,设它们分别为P0,P1,P2,P3,那么对于曲线上各个点Pi(x,y)满足下列关系: P(t)=[(-P0+3P1-3P2+3P3)t3+(3P0-6P1+3P2)t2+(-3P0+3P2)t+(P0+4P1+P2)]/6 X(t)=[(-X0+3X1-3X2+3X3)t3+(3X0-6X1+3X2)t2+(-3X0+3X2)t+(X0+4X1+X2)]/6 Y(t)=[(-Y0+3Y1-3Y2+3Y3)t3+(3Y0-6Y1+3Y2)t2+(-3Y0+3Y2)t+(Y0+4Y1+Y2)]/6 其中P0、P1、P2、P3为四个已知的点,坐标分别为(X0、Y0)、(X1、Y1)、(X1、Y2) 、(X3、Y3)。所以只要确定控制点的坐标,该曲线可通过编程即可绘制出来。 2. 绘制三次B样条曲线 三次B样条函数绘制曲线的光滑连接条件为:对于6个顶点,取P1、P2、P3、P4 4个顶点绘制在第一段三次样条曲线,再取P2、P3、P4、P5 这4个顶点绘制在第二段三次样条曲线,总计可绘制3段光滑连接的三次样条曲线。 4. 算法设计 程序框架 //DiamondView.h class CDiamondView : public CView { ……

计算机图形学作业-Display-答案

计算机图形学作业 I 一.判断题 1.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(×) 2.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;(√) 3. 相似变换是刚体变换加上等比缩放变换;(√) 4. 保距变换是刚体变换加上镜面反射;(√) 5. 射影变换保持直线性,但不保持平行性。(√) 二、填空题 1.透视投影的视见体为截头四棱锥形状;平行投影的视见体为长方体形状。 2.字符的图形表示可以分为矢量表示和点阵表示两种形式。 3.仿射变换保持直线的平行性 4.刚体变换保持长度 5.保角变换保持向量的角度 三、单项选择题 1. 分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( D) A. 512KB; B. 1MB; C. 2MB; D. 3MB ; 2. 在透视投影中,主灭点的最多个数是( C ) A 1; B 2; C 3; D 4 3. 以下关于图形变换的论述不正确的是( B ) A. 平移变换不改变图形大小和形状,只改变图形位置; B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系; C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变; 4. 使用下列二维图形变换矩阵:将产生变换的结果为( D ) A. 图形放大2倍; B. 图形放大2倍,同时沿X、Y1个绘图单位; C.沿X坐标轴方向各移动2个绘图单位; D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。 5. 下列有关投影的叙述语句中,正确的论述为(B ) A. 透视投影具有近小远大的特点; B. 平行投影的投影中心到投影面距离是无限的; C. 透视投影变换中,一组平行于投影面的线的投影产生一个灭点; T =

计算机图形学实验报告

目录

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

计算机图形学期末编程大作业

完成下列程序的设计、调试与及设计说明书: 一、实现直线、圆的生成 要求:(1)算法不限;(2)直线的端点、圆的圆心、半径由用户实时输入;(3)用所实现的直线、圆的生成程序实现一个任意图形的绘制。 二、实现区域填充(多边形区域)或影线填充 要求:(1)区域自行指定,至少应有一个内环(2)算法:计算机相关专业的要求实现图案填充,机械相关专业的要求实现影线填充。 三、直线段裁剪算法的实现 要求:完成对一个指定图形(见图)的裁剪,先在图形 区显示原始图形及窗口位置,然后将裁剪后图形的显示在图 形区的另一侧。 四、凸多面体消隐的实现(外法线法) 要求:立体数据自定。 五、样条曲线的实现 要求:实现B样条曲线,并能通过交互输入点的形式完成曲 线绘制。 注意:要反求控制点 六、平时成绩(30分) 要求: 1、语言不限,可以是所熟悉的如何一种语言。 2、须提交的内容包括:源程序(电子版)、可执行程序,设计说明书(电子版及打印版)。 3、程序须经教师运行测试通过。 4、设计说明书B5页面打印,内容包括:算法与数据结构,程序流程说明及变量,程序运行情况分析及结果截图,程序使用说明。

题目一:实现直线、圆的生成 要求:(1)算法不限;(2)直线的端点、圆的圆心、半径由用户实时输入;(3)用所实现的直线、圆的生成程序实现一个任意图形的绘制。 1.程序使用说明. 1)概述 该程序以Visual C++6.0作为编程开发工具,利用其中的MFC(Microsoft Foundation Classes)库作为应用程序的框架,进行图形的编程绘制,有良好的用户操作界面和简洁的操作方法。 执行该程序,界面如下图。 图1-1 程序运行界面 图形绘制功能的实现,主要是通过点选菜单栏中的对应菜单项来实现。主要功能有:图形颜色的选择、绘制直线、绘制圆。 2)具体操作说明: a.颜色的选择. 鼠标左键单击菜单项,便会弹出颜色编辑对话框,如图2。

计算机图形学报告

中南大学 计算机图形学 实验报告 学生姓名谭淼 学号23 专业班级应数1102班 指导老师刘圣军 数学与统计学院 2013年12月 实验目的:设计并实现一个简单动画(二维或三维)。熟悉并应用画线的基本算法—Bresenham算法。 实验过程: 1、实验步骤: (1)打开Visual Studio 2010,新建一个MFC项目,取名为tuxingxue,设置为单文档。 (2)打开类视图,添加一个名为Cline2D的类,在该类中添加BresenhamLine(CDC* pDC, int xa,float ya,int xb,float yb) DrawPixel(CDC* pDC, int x, float y, unsigned int color, int size); BresenhamLine1(CDC* pDC, int xa,float ya,int xb,float yb);

BresenhamLine2(CDC* pDC, int xa,float ya,int xb,float yb); BresenhamLine3(CDC* pDC, int xa,float ya,int xb,float yb); BresenhamLine4(CDC* pDC, int xa,float ya,int xb,float yb); 以上函数的返回值类型均为void型。在中,分别在其中添加代码实现画线的功能,具体代码见附录中的源代码。 (3)画出基本图形。在中定义CLine2D 的一个对象为line1,以便调用CLine2D中的函数,此时在调用的函数中赋初始值即可画出最基本的图形,即为一颗大五角星以及三颗小的五角星。 (4)让画出的五角星动起来。从类视图中CtuxingxueView下添加名为OnTimer的消息处理函数,在中添加bool型变量m_flag,在OnTimer函数下添加代码,具体代码见附录。在添加变量int m_x1、int m_y1、int m_x2、int m_y2、int m_x3、int m_y3、int m_x4、int m_y4、int m_x5、int m_y5、int m_x6、int m_y6、int m_x7、int m_y7、int m_x8、int m_y8、int m_x9、int m_y9、int m_x10、int m_y10、 int m_x11、int m_y11、int m_x12、int m_y12。在中为这些变量赋初始值,将第三步中函数赋的初值用这些变量代替,这样变量的值可以改变,在资源视图中menu下IDR_MAINFRAME中添加名为绘图的菜单项,在绘图下添加名为运行的选项,其ID号为ID_run,添加事件处理程序,函数处理程序名称为Onrun,将其类选为C tuxingxueView,此时,在Onrun中添加代码,再运行就可以让图形动起来了。 2、实验中遇到的问题及处理方法

计算机图形学作业题

计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数(颜色、线型等)来表示图形称图形的参数表示;枚举出图形中所有的点称图形的点阵表示,简称为图像(数字图像) 2. 什么是计算机图形学?计算机图形学有哪些研究内容? 3. 计算机图形学有哪些应用领域? 4. 计算机图形学有哪些相关学科分支?它们的相互关系是怎样的? 5. 图形系统的软件系统由哪些软件组成?举例说明。 6. 了解计算机图形系统的硬件。 7. 什么是显示器的分辨率、纵横比、刷新率? 8. 什么是像素、分辨率、颜色数?分辨率、颜色数与显存的关系? 分辨率M ?N 、颜色个数K 与显存大小V 的关系: 例:分辨率为1024像素/行?768行/ 帧,每像素24位(bit )颜色(224种颜色)的显示器,所需的显存为:1024?768?24位(bit )=1024?768?24/8=2359296字节(byte )。或:每像素16777216种颜色(24位真彩色),1024?768的分辨率,所需显存为:1024?768?log 216777216位显存=2359296字节显存。 9. 什么是图元的生成?分别列举两种直线和圆扫描转换算法。 10. OpenGL 由核心库GL(Graphics Library)和实用函数库GLU(Graphics Library Utilities)两个库组成。 11. 区域填充算法要求区域是连通的,因为只有在连通区域中,才可能将种子点的颜色扩展到区域内的其它点。 区域可分为 向连通区域和 向连通区域。区域填充算法有 填充算法和 填充算法。 12. 字符生成有哪两种方式? 点阵式(bitmap fonts 点阵字——raster 光栅方法):采用逐位映射的方式得到字符的点阵和编码——字模位点阵。 笔画式(outline fonts 笔画字——stroke 方法):将字符笔画分解为线段,以线段端点坐标为字符字模的编码。 13. 图形信息包含图形的 和 。 14. 什么是图形变换?图形变换只改变图形的 不改变图形的 。图形变换包括 和 ( )。 15. 熟练掌握二维图形的齐次坐标表示、平移、比例、旋转、对称变换以及复合变换的方法和原则。 16. 图形的几何变换包括 、 、 、 、 ;图形连续作一次以上的几何变换称 变换。 17. 试写出图示多边形绕点A(xo,yo)旋转的变换矩阵。要求写出求解过程及结果。 18. 试写出针对固定参考点、任意方向的比例变换矩阵。 19. 试写出对任意直线y=mx+b 的对称变换矩阵。 20. 什么是窗口?什么是视区?什么是观察变换? 21. 简述二维观察变换的流程。 22. 试述窗口到视区的变换步骤,并推出变换矩阵。 ??—(位) —K N M V 2log ??≥

东南大学自动化学院计算机图形学大作业

计算机图形学大作业 ——程序设计 用简单光照模型显示一系列小球在不同参数情况下的镜面反射效果 学号:08009223 姓名:贺国睿 专业:自动化日期:2012.5.26

1 设计目标和要求 ?用简单光照模型显示一系列小球在不同参数情况下的镜面反射效果; 2 算法原理介绍 2.1光源分析 在现实生活中的物体,要有光照存在才可以被看到。物体通过自身发光以及反射光进入人眼,物体才能在人眼中成像。如果没有任何的光,人眼将观察不到任何东西,一片漆黑。 在光照中首先是光源,要有光源才能产生光线,才有以后的一系列反射、折射、散射等效果。不同的物体的表面物理属性不同,所以相同的光线照射到不同表面属性的物体表面会产生不同的效果,发生漫反射,镜面反射的比例各不相同,有的属于半透明的物体还有折射效果。这些不同的物体表面物理属性属于材质的范畴。 除了材质以外,物体表面还有各种图案效果,这就是纹理。光线在空中穿行的时候,还会有更多复杂的效果。 在现实中,光源的类型很多,而且有的光源不能简单的用一种模型来描述,而是具有多种不同类型光源特点。几种基本的光源类型是:点光源、无穷远光源、方向光源和环境光。 点光源:光线从光源点向四面八方发散,发光的恒星(如太阳)、发光的灯泡一般使用该光源模型模拟,是最简单的光源。 无穷远光源:所有的光线都平行的从一个方向过来,当发光体(如太阳)离渲染的场景很远可以认为是无穷远时,一般使用该光源模型进行模拟。 方向光源:光线沿着一个方向在特定角度范围内逐渐发散开。现实世界中的车灯,手电筒一般使用该光源模型进行模拟。 环境光源:光线从各个地方以各个角度投射到场景中所有物体表面,找不到光源的确切位置。现实世界中不存在这样的光源,一般使用该光源模型来模拟点光源、无穷远光源、方向光源在物体表面经过许多次反射后的情况,环境光源照亮所有物体的所有面。 这四种基本的光源模型,只能近似的描述光源,不可能做到非常逼真。在现实中,一束光线照射到物体表面发生反射后,再照射到另外的物体的表面,如此循环反复这才是环境光的真正情况。这个过程是个无限次反射的过程,计算机无法处理无限的问题,所以采取了简单的近似处理。而且环境光源在反射过程中,上一次反射所带的颜色会影响下次反射所照物体的颜色,并且无限的重复。光线追踪算法是一种好得多的近似描述,但也仅仅是近似描述,只是近似效果比用环境光源模型要好。 OpenGL还提供了让物体自发光让自己可以被看见的方式。这就是物体自发光。物体自发光对于光源十分的重要,比如电灯泡可以看作是一个点光源,我们把点光源的位置设置到灯泡的中央,这样灯泡周围的物体将被照亮,但是灯泡的外表面由于相对光源来说是背面,将不能被照亮。这与实际情况不符合,灯泡照亮其它物体,而自身却不亮,所以需要通过物体自发光让灯泡的外表面也发亮。 光源的一般属性包括:镜面反射光线颜色、漫反射光颜色、环境光线颜色、光源位置。镜面反射光颜色:在物体表面将发生镜面反射的光线的颜色。漫反射光颜色:在物体表面将发生漫反射的光线的颜色。环境光线颜色:照亮所有物体所有表面的光线的颜色。光源位置就是光源在场景中所在的位置。 光线的衰减:光源发出的光线的强度会随着传播距离越来越大而变弱(无穷远光源除外)。光线强度会乘以一个衰减因子。 衰减因子=1/(K1 + K2 * d + k3 *d^2) 其中d为光源距离(无穷远光源的衰减因子为1)方向光源发出的光线会随着偏移中心方向的角度增大而减弱。

计算机图形学报告

数字媒体技术专业 计算机图形学课程设计报告 院系:印包学院 专业班级:媒体121 学生学号: 3120342001 学生姓名:孔祥倩 指导教师:吴学毅 2014年秋季学期

目录 一.课程设计的目的 (2) 二.课程系统描述实现及步骤 (2) 三.设计内容 (3) 四.源程序代码 (4) 五.总结 (19) 六.参考文献 (20) 七.附录 (20)

一、课程设计的目的 OpenGL即开放性图形库,它是一种高性能的开放式且功能强大的3D图形库,具有几百个指令和函数。本文讨论了两种将常见三维模型转入OpenGL 中实现交互的方法,首先对文件进行分析,然后给出转化的思路。从而将三维建模软件产生的三维模型移植到三维场景中,实现仿真. 本课程主要内容包括计算机图形学的研究内容、发展与应用,图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面三维实体造型,分形几何造型,分形艺术,隐藏面消除,光照模型,颜色模型,光线跟踪,纹理细节模拟,常用的计算机动画技术和软件等。在学期期末时按课程要求进行运动,提高学生对计算机图形学知识的了解与运用技巧同时通过此次课程设计提高动手实践能力与学习分析能力这就是本次的课 OpenGL的英文全称是“Open Graphics Library”即“开放的图形程序接口”,因为其良好的可移植性和跨平台性,已逐渐成为高性能图形开发和交互式视景仿真的国际图形标准。它是一种高性能的开放式且功能强大的3D图形库,具有几百个指令和函数。使用这些指令和函数可以构造出高质量的静止物体模型和动态图像,并且可以实现对模型的实时交互操作过程。但是OpenGL中并没有提供建模的高级命令,其实现过程也是通过基本的几何图元点、线和多边形来建立三维立体模型的,过程比较繁琐,编程量较大。 二.课程系统描述实现及步骤 此次课程设计的课题为利用VC++6.0和插件OPENGL制作三维模型。本设计主要通过建立MFC工程,在工程里建立一个三维模型,来建立一个动态的三维模型。设计一个小院子,其中有房子,树木,桌凳,月亮的一系列景物。运行程序,实现在这个小院子中的漫游。 主要步骤如下: 1:工程的建立 2:三维模型的建立和映射 3:三维模型的运动 一:工程的建立 1:系统配置。先对机子安装VC++6.0.在建立工程前,本实验需要添加OPENGL插件,故需要在Windows环境下安装GLUT 步骤如下: 1、将下载的压缩包解开,将得到5个文件 2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。把解压得到的glut.h放到这个文件夹。 3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。 4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)然后建立

计算机图形学作业题

1、已知一直线段起点(0,0),终点(8,6),利用Bresenham算法生成此直线段,写出 生成过程中坐标点及决策变量d的变化情况,并在二维坐标系中,标出直线上各点。 2、试用中点画圆算法原理推导第一象限中y=0到x=y半径为R的圆弧段的扫描转换算法。(要求写清原理、误差函数和递推公式,并进行优化) 3、如下图所示多边形,若采用扫描线算法进行填充,试写出该多边形的ET表和当扫描线Y=3时的有效边表(AET表)。 4、试按左下右上顺序用四向算法,分析当S1为种子时,下图区域的填充过程。 5、将下图中的多边形ABCD先关于点C(3,4)整体放大2倍,再绕点D(5,3)顺时针旋转90 ,试推导其变换矩阵、计算变换后的图形各顶点的坐标,并画出变换后的图形。

6、已知三角形ABC 各顶点的坐标A(3,2)、B(5,5)、C(4,5),相对直线P 1P 2(线段的坐标分别为:P 1 (-3,-2) 、P 2 (8,3) )做对称变换后到达A ’、B ’、C ’。 试计算A ’、B ’、C ’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵,列出计算式子,不要求计算结果) 7、试作出下图中三维形体ABCDE 的三视图。要求写清变换过程,并画出生成的三视图。 x 8、试采用Sutherland –Cohen 裁剪算法,叙述裁剪如下图所示的直线AB 和CD 的步骤: ① 写出端点A 、B 、C 、D 的编码; ② 写出裁剪原理和直线AB 、CD 的裁剪过程。 A B C D 9 、用梁友栋算法裁减如下图线段AB ,A 、B 点的坐标分别为(3,3)、(-2,-1) 裁剪窗口为wxl=0,wxr=2,wyb=0,wyt=2。

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

一、实验目的 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);

武汉理工大学《计算机图形学》大作业

《计算机图形学基础》大作业 课程名称计算机图形学基础开课学院计算机科学与技术学院指导教师姓名佘名高 学生姓名杨峻 学生专业班级软件工程1102 2013-2014 学年第一学期

一、命题计划 题目:C语言图形编程 (以下题目文档要求:①基本论述②算法③程序源代码④界面图) 二、内容与要求 (1)撰写内容 1.根据Bresenham直线绘制算法,实现直线的绘制。 2.用C语言编写:画y=sin(x)的图形(要求画出[-2π,2π]的图形及笛卡尔坐标)3.用C语言编写一个小圆沿着大圆运动的程序。 4.对图1中的零件图形,如何根据它所标注的尺 寸,按照适当的顺序有步聚地画出该图形。 提示:首先要分析此零件图形的几何关系,了解 构成这个图形各线段的性质,才能顺利地绘出此图形。 线段(直线或圆弧)在零件图形中分为三类,即已知线 段、中间线段和连接线段。以圆弧为例,按几何原理, 已知圆心的两个位置尺寸与半径尺寸便可画出圆。因 此图形中,已知这三个尺寸的圆弧称为已知圆弧,画 图时应该最先画出。凡已知其中二个尺寸的圆弧称为 中间圆弧。凡只已知一个尺寸(一般是圆弧半径)的圆 弧称为连接圆弧。中间圆弧和连接圆弧都缺省圆心的位置尺寸,它的几何位置是根据相切的条件来确定的。因此画圆弧的顺序为:先画已知圆弧,再画中间圆弧,最后画连接圆弧。 本零件图形是对称图形,三个小圆均匀分布在圆周中心线上,φ10,φ25,φ50和R10都是已知圆弧,R8为连接圆弧,φ50是已知圆弧的端点和R10已知圆弧的端点与连接圆弧的端点相切,从而构成整个图形。 (2)撰写要求 1.基本论述 2.算法 3.程序源代码 4.程序运行截图 5.小结

《计算机图形学基础》第三次大作业实验报告共3页文档

第三次实验 1. 实验目的 实现用 Phong 光照明模型显示网格模型(*.smf)。分别实现不使用/使用增量式光强/法 向插值算法,比较三种不同的显示效果和效率。 Phong模型中各参数可调,观察它们的作用。 与用户的交互方式为图形用户界面,操作简单,界面友好。 2. 算法描述 2.1. 基于扫描线算法的Phong 模型实现 上一次大作业中我没有完成扫描线 ZBuffer 算法,使得程序的效率很低,这次作业考虑 到各种计算对时间的消耗会更大,所以我首先完成了扫描线算法再进行这次作业代码的编写。 对扫描线Z-Buffer算法这里不作详细描述,主要介绍 Phong模型的实现。基于扫描线算 法的 Phong 模型实现是非常方便的,因为最基本的 Phong 模型中每个面的颜色是法向量的 函数,因此每个面的颜色是相同的,这样在扫描线算法之前我首先初始化了一个数组,将各 个面的颜色根据用户提供的参数以及 Phong 模型公式计算出来保存在这个数组里,每一项 对应一个面,这样在具体扫描线算法的执行过程中每一个点颜色的获取

都仅仅是对数组的读 取操作,是O(1)的复杂度,不会消耗太多时间。 算法如下: 1.对物体表面上的每个点P,均需计算光线L的反射方向R, R=2N(N·L)-L。 为了减少计算量,假设: 2.光源在无穷远处,L为常向量 3.视点在无穷远处,V为常向量 4.用(H?N)近似(R?V),H为L与V的平分向量 5.Phong光照明模型的RGB颜色模型形式 2.2. 双线性光强差值算法 考虑到双线性光强差值算法的核心思想是由顶点的光强插值计算各边的光强,然后由各 边的光强插值计算出多边形内部点的光强,结合之前实现的扫描线ZBuffer 算法,我使用了 增量的方式实现这个算法,也就是将它和扫描线算法结合起来,在扫描线算法每个面的边表 中多加几个个域来表示当前的光强、光强在X 方向的单位增量和光强在 Y 方向的单位增量, 这样在扫描到每个点的时候就可以根据前一个点的光强以及光强增量获得该点的光强,另外 在扫描线改变的时候光强也需要根据Y方向的增量来进行相应的修改。

相关文档
最新文档