计算机图形学报告讲述
计算机图形学实验报告
计算机图形学
实习报告
姓名:
学号:
专业:
学院:
实习性质:
指导教师:
实习时间:
实习成绩:指导教师签名:
目录(一)基本图元绘制
(二)图形变换
(三)曲线曲面
(一)基本图元绘制
一、实验名称
《基本图元绘制》
二、实验目的
1.学会在Visual Studio 2010中新建MFC工程;
2.掌握在MFC工程中编写计算机图形学算法的方法;
3.至少掌握一种直线画线算法(DDA画线法、中点画线法、Bresenham画线法)的实现;
4.至少掌握一种画圆算法(中点画圆法、Bresenham画圆法)的实现;
三、实验内容
1. 直线画线算法(DDA画线法、中点画线法、Bresenham画线法)的实现;
2. 画圆算法(中点画圆法、Bresenham画圆法)的实现;
四、实验步骤
1打开Visual Studio 2010软件
在开始菜单找到Microsoft Visual Studio 2010,单击Microsoft Visual Studio 2010打开。
2新建MFC工程
单击File->New->Project菜单
所示:
在弹出的对话框中单击Next
在弹出的对话框中,按下图进行设置,设置完成后,单击Finish
生成的工程如下图所示:
打开*View.cpp文件,找到OnDraw函数
将对/*pDC*/的注释去掉
在OnDraw函数中设计算法,下图为其中的一种画线算法
Studio 2010 C++ 调试学习更多技巧)
确认程序没有错误后,对程序进行编译:
编译完成后,可执行程序
上述示例代码的执行效果如下图所示。
4画线算法设计
计算机图形学报告
计算机图形学课程设计报告
一.课程设计背景:
近年来,随着时代的发展,计算机技术得以迅速的普及与深入的趋势,而计算机图形学正是其中一门重要的学科以技术。计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。虽然这个词通常被认为是指三维图形,事实上同时包括了二维图形以及图像处理。
这个科学广义的分类,可分为以下几类:
∙几何:研究面的表示和处理的方法。
∙动画:研究移动的表示和操作方法。
∙图像拟真/渲染:研究模拟光线传递效果的算法。
∙图像:研究图像的获取或是编辑。
简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。
二.课程设计目的:
本课程主要内容包括计算机图形学的研究内容、发展与应用,图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面,三维实体造型,分形几何造型,分形艺术,隐藏面消除,光照模型,颜色模型,光线跟踪,纹理细节模拟,常用的计算机动画技术和软件等。
在本学期期末时按课程要求进行课程设计,提高学生对计算机图形学知识的了解与运用技巧,加深学生对其算法原理理解及运用。同时通过此次课程设计提高动手实践能力与学习分析能力这就是本次的课程设计的目的。
计算机图形学总结报告
ON_COMMAND(ID_MENUITEM32774, OnMidPiontCircle)
//}}AFX_MSGபைடு நூலகம்MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
计算机图形学实验报告
学院:
班级:
学号:
姓名:
学院名称
专业班级
学号
学生姓名
实验日期
成绩
课程名称
计算机图形学
实验名称
实验一 维基本图形生成的算法实现
一、实验目的:
1.通过实验,进一步理解和掌握DDA和中点算法,Bresenham算法;
2.掌握DDA和中点算法,Bresenham算法算法生成直线段的基本过程;掌握中点算法生成圆的基本过程;
// CDdaView construction/destruction
CDdaView::CDdaView()
{
// TODO: add construction code here
}
CDdaView::~CDdaView()
{
}
BOOL CDdaView::PreCreateWindow(CREATESTRUCT& cs)
《计算机图形学》实验报告
《计算机图形学》实验报告
目录
1实验2:直线的生成 (1)
1.1实验要求和目的 (1)
1.2实验课时 (1)
1.3实验环境 (1)
1.4实验内容 (1)
1.5核心代码 (3)
1.6实验结果 (7)
1.6.1DDA算法 (10)
1.6.2Mid-Bresenham算法 (11)
1.7心得与体会 (12)
2实验4:BSpline曲线绘制 (13)
2.1实验要求和目的 (13)
2.2实验课时 (13)
2.3实验环境 (13)
2.4实验内容 (13)
2.5核心代码 (16)
2.6实验结果 (18)
2.6.1B-样条算法 (19)
2.6.2Bezeir算法 (22)
2.7心得与体会 (24)
附录 (25)
BSpline曲线控制点的测试数据 (25)
数据1 (25)
数据2 (27)
数据3 (29)
数据4 (30)
数据5 (31)
数据6 (33)
数据7 (36)
数据8 (38)
1实验2:直线的生成
1.1实验要求和目的
理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力;
编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。
1.2实验课时
3学时
1.3实验环境
本试验提供自带实验平台
·开发环境:Visual C++ 6.0
·实验平台:Free_Curve(自制平台)
1.4实验内容
本实验提供名为 Experiment_Frame_One的平台,该平台提供基本绘制、设置、输入
计算机图形学实验报告
计算机图形学实验报告
在计算机图形学课程中,实验是不可或缺的一部分。通过实验,我们可以更好地理解课程中所学的知识,并且在实践中掌握这些
知识。在本次实验中,我学习了如何使用OpenGL绘制三维图形,并了解了一些基本的图形变换和视图变换。
首先,我们需要通过OpenGL的基本命令来绘制基本图形,例
如线段、矩形、圆等。这些基本的绘制命令需要首先设置OpenGL 的状态,例如绘制颜色、线段宽度等,才能正确地绘制出所需的
图形。
然后,在实验中我们学习了图形的变换。变换是指通过一定的
规则将图形的形状、位置、大小等进行改变。我们可以通过平移、旋转、缩放等变换来改变图形。变换需要按照一定的顺序进行,
例如先进行旋转再进行平移等。在OpenGL中,我们可以通过设
置变换矩阵来完成图形的变换。变换矩阵包含了平移、旋转、缩
放等信息,通过矩阵乘法可以完成图形的复合变换。
最后,视图变换是指将三维场景中的图形投影到二维平面上,
成为我们所见到的图形。在实验中,我们学习了透视投影和正交
投影两种方式。透视投影是指将场景中的图形按照视点不同而产
生不同的远近缩放,使得图形呈现出三维感。而正交投影则是简单地将场景中的图形按照平行投影的方式呈现在屏幕上。在OpenGL中,我们可以通过设置视图矩阵和投影矩阵来完成视图变换。
通过本次实验,我对于计算机图形学有了更深入的了解,并掌握了一些基本的图形绘制和变换知识。在今后的学习中,我将继续学习更高级的图形绘制技术,并应用于实际的项目中。
计算机图形学报告
计
算
机
图
形
学
总
结
报
告
学院:计算机与通信工程学院班级:计算机12-01
学号:
姓名:
指导教师:
计算机图形学总结报告
一:课程总结
通过一个学期的学习,了解了什么是计算机图形学、什么是图形API、为什么需要计算机图形学以及计算机图形学在各个领域的应用。在学习过程中我们也通过实验课真正的了解和尝试的制作某些比较简单的图形学案例,比如一些基本的画笔与画刷、用鼠标交互式画图的算法、菜单编辑、一些基本的图形算法等等,其中我还以金刚石图案算法作为了我的特色程序设计。
计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学,研究的是应用计算机产生图像的所有工作,不管图像是静态的还是动态的,可交互的还是固定的,等等。
图形API是允许程序员开发包含交互式计算机图形操作的应用而不需要关注图形操作细节或任务系统细节的工具集。计算机图形学有着广泛的应用领域,包括物理、航天、电影、电视、游戏、艺术、广告、通信、天气预报等几乎所有领域都用到了计算机图形学的知识,这些领域通过计算机图形学将几何模型生成图像,将问题可视化从而为各领域更好的服务。
计算机图形学利用计算机产生让人赏心悦目的视觉效果,必须建立描述图形的几何模型还有光照模型,再加上视角、颜色、纹理等属性,再经过模型变换、视图变换、投影操作等,通过这些步骤从而实现一个完整的OpenGL程序效果。
OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操
作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植。计算机图形学通过应用OpenGL的功能,使得生成的图形效果具有高度真实感。学习计算机图形学的重点是掌握OpenGL在图形学程序中的使用方法。
计算机图形学实验报告
计算机图形学实验报告
实验目的:通过本次实验,深入了解并掌握计算机图形学的基本原理和相关技术,培养对图形处理的理解和能力。
实验内容:
1. 图像的基本属性
- 图像的本质及表示方法
- 像素和分辨率的概念
- 灰度图像和彩色图像的区别
2. 图像的处理技术
- 图像的采集和处理
- 图像的变换和增强
- 图像的压缩和存储
3. 计算机图形学的应用
- 图像处理在生活中的应用
- 计算机辅助设计中的图形学应用
- 三维建模和渲染技术
实验步骤和结果:
1. 在计算机图形学实验平台上加载一张测试图像,分析其像素构成
和基本属性。
2. 运用图像处理技术,对测试图像进行模糊、锐化、色彩调整等操作,观察处理后的效果并记录。
3. 学习并掌握计算机图形学中常用的处理算法,如卷积、滤波等,
尝试应用到测试图像上并进行实验验证。
4. 探讨计算机图形学在数字媒体制作、虚拟现实、计算机辅助设计
等领域的应用案例,并总结其在实践中的重要性和价值。
结论:
通过本次实验,我对计算机图形学有了更深入的了解,掌握了图像
处理技术的基本原理和应用方法。计算机图形学作为一门重要的学科,对多个领域有着广泛的应用前景,有助于提高数字媒体技术、虚拟现
实技术等领域的发展水平。希望在未来的学习和工作中能进一步深化
对计算机图形学理论和实践的研究,不断提升自己在这一领域的专业
能力和创新意识。
计算机图形学课程报告
目录
一、课程内容总结 (2)
1.1 课程概述 (2)
1.2 课程特点 (2)
1.3 待解决问题 (3)
二、新型存储设备文献综述 (3)
2.1概述 (3)
2.2 Eye-Fi (4)
2.3 SDXC (5)
2.4相变内存 (5)
三、收获与体会 (6)
3.1 与数学的联系 (6)
3.2 收获 (6)
四、参考文献 (7)
一、课程内容总结
1.1 课程概述
《计算机图形学技术》是为计算机科学与技术专业本科生开设的专业任选课,旨在介绍计算机图形学的基本概念、理论、方法和系统。它向我们讲授图形学的方法和在这一领域的最新成果,同时注重培养学生的动手能力。“计算机图形学”是计算机科学的重要研究内容之一,它借助数字化手段合成与操作视觉内容,将信息直观地展现给用户,其应用范围覆盖军事仿真、航空航天、文化教育、城市管理、大众娱乐等诸多领域。随着软硬件技术的不断发展,计算机图形处理能力大大提高,新技术、新方法不断涌现使得“计算机图形学”成为目前发展最为活跃的计算机技术之一。
因为本课程是一门实践性较强的技术基础课,其主要目的是使我们能获得在计算机图形生成与处理方面的基本理论和基本方法,培养学生能够应用计算机来解决在科学研究,工程设计与制造中有关图形处理的能力;在图形学理论与算法方面的科研能力;应用高级绘图软件及对其进行二次开发的能力,并具有开发大型通用或专用绘图软件的能力。为后续的课程学习及毕业设计,以至于毕业后的工作打下坚实基础。
1.2 课程特点
“计算机图形学”与其他计算机专业课程相比,具有一些特点,了解这些特点可以帮助我们更好地学好这门课。
计算机图形学研究报告
计算机图形学研究报告
计算机图形学是计算机科学的一个重要分支,它将复杂的数学原理应用于计算机系统,以创建有效的图形表现形式。这项研究一直是计算机科学领域最重要的研究之一。在过去的几十年里,计算机图形学在众多领域都发挥着重要作用,例如,它在多媒体、游戏开发和数据可视化领域均有所体现。
计算机图形学的研究主要集中在几个不同的方面,包括3D模型及其视觉表示、渲染算法、曲面建模、图形输入和交互设计等技术。这些技术的目的在于更有效地将复杂的3D世界表示为可视化的图形表示形式。渲染算法将3D图形转换为更加真实的2D图像,而图形输入将对象控制方式转化为可用于识别对象的模拟控制方式。
此外,计算机图形学还在电影制作、机器视觉及图像分析等领域中发挥重要作用。电影制作中的建模和渲染技术可以帮助制作人员快速制作出高质量的电影。机器视觉可以通过模拟视觉系统来识别和分析图像,从而实现机器自动控制。在图像分析中,计算机图形学技术可以自动检测出图像中的特征,从而帮助进行精准的图像分割和物体识别。
随着计算机图形学技术的进一步发展,越来越多的新技术出现在日常生活中。增强现实(AR)和虚拟现实(VR)技术的出现,尤其是新型AR / VR应用程序的开发,将会加速计算机图形学技术的发展。此外,智能图像和视频分析技术也在蓬勃发展,其中大量利用计算机图形学技术。这些可以应用于软件开发、医学成像、安全监控、无人
机技术等多个行业,从而改善技术的效率,提高人类生活的质量。
综上所述,计算机图形学的发展不断推动着计算机科学的发展,它在多个领域均发挥着重要作用。它是计算机及其相关科学领域的一个基本理论,并在诸多领域中不断发展壮大。随着计算机技术的不断进步,计算机图形学技术也将得到进一步的发展,继续促进计算机科学的发展,并为人们带来更多的方便。
计算机图形学实验报告=
要点三
可视化参数调整
通过调整VTK中的可视化参数,如颜 色映射、透明度等,实现了对数据分 布和特征的精细展示。
性能评估与分析
01
帧率测试
通过记录每秒渲染的帧数(FPS), 我们对渲染性能进行了评估。在保证 图像质量的同时,我们的程序实现了 较高的帧率,保证了流畅的视觉体验 。
02
内存使用分析
通过分析内存使用情况,我们发现程 序的内存占用随着数据量和模型复杂 度的增加而增加,但仍在可接受的范 围内。
图形优化
为了提高渲染效率,我们采用了多种优化技术,如裁剪、视野裁剪、屏幕空间排序等。
数据可视化结果
要点一
基于VTK的数据可视 化
使用VTK库,我们成功地将3D医学影 像数据(如CT、MRI)导入并实现了 数据的可视化。
要点二
数据预处理
为了更好地展示数据,我们对原始数 据进行了多种预处理,如去噪、平滑 、插值等。
需要进一步深入研究
实验中涉及的原理和技术较多,需要进一步深入研究和理解。
研究展望与未来发展
图形学技术的进一步 发展
随着计算机技术和硬件性能的不 断提升,计算机图形学将会有更 多的发展空间和可能性。未来, 我们可以期待更多的图形学技术 和应用的出现。
跨领域应用
计算机图形学在游戏开发、电影 制作、虚拟现实等领域的应用越 来越广泛,未来我们可以期待其 在更多领域的应用和发展。
计算机图形学实验报告
计算机图形学 实验报告
实验一:二维线画图元的生成
实验目的:掌握直线段的生成算法,并用C/WIN-TC/VC++实现算法,包括中点法生成直线,微分数值法生成直线段等。
实验内容:用不同的方法生成斜率不同的直线段,比较各种方法的效果。 Bresenham 算法的思想
Bresenham 画法与中点法相似,都是通过每列象素中确定与理想直线最近的像素来进行直线的扫描的转换的。通过各行、各列的象素中心构造一组虚拟网格线的交点,然后确定该列象素中与此交点最近的像素。该算法的巧妙之处在于可以采用增量计算,使得对于每一列,只需要检查一个误差项的符号,就可以确定该列的所有对象。 1.1方法一:直线的中点算法 算法的主要思想:
讨论斜率k ∈[1,+∞)上的直线段的中点算法。 对直线01p p ,左下方的端点为0p (x0,y0),右上方的端点为1p (x1,y1)。直线段的方程为: y m x B =+
⇔y
y x B x y y x x B x
∆=
+⇔∆=∆+∆∆ (,)0F x y xy yx xB ⇔=∆-∆-∆= 现在假定已求得像素(,,i r i x y ),则如图得
,,11(,]22
i i r i r x x x ∈-
+ 由于直线的斜率k ∈[1,+∞),故m=1/k ∈(0,1],则
1,,13(,]22i i r i r x x x +∈-+ 在直线1i y y =+上,区间,,13
(,]22i r i r x x -+内存在两个像素NE 和E 。根据取整原则,当
11(,)i i x y ++在中点M 11
计算机图形学实验报告
04
实验四:渲染复杂场景
实验目的
掌握渲染复杂场景的基本流程和方法 理解光线追踪和着色器在渲染过程中的作用
熟悉渲染引擎的实现原理和技巧 提高解决实际问题的能力
实验步骤
• 准备场景文件 • 使用3D建模软件(如Blender)创建或导入场景模型,导出为常用的3D格式(如.obj或.fbx)。 • 导入场景文件 • 在渲染引擎(如Unity或Unreal Engine)中导入准备好的场景文件。 • 构建场景图 • 根据场景的层次结构和光照需求,构建场景图(Scene Graph)。 • 设置光照和材质属性 • 为场景中的物体设置光照和材质属性(如漫反射、镜面反射、透明度等)。 • 编写渲染脚本 • 使用编程语言(如C或JavaScript)编写渲染脚本,控制场景中物体的渲染顺序和逻辑。 • 运行渲染程序 • 运行渲染程序,观察渲染结果。根据效果调整光照、材质和渲染逻辑。 • 导出渲染图像 • 将渲染结果导出为图像文件(如JPEG或PNG),进行后续分析和展示。
2. 通过属性设置和变换操作,实现了对图形的定 制和调整,加深了对图形属性的理解。
4. 实验的不足之处:由于时间限制,实验只涉及 了基本图形的绘制和变换,未涉及更复杂的图形 处理算法和技术,如光照、纹理映射等。需要在 后续实验中进一步学习和探索。
02
实验二:实现动画效果
实验目的
《计算机图形学》实验报告
《计算机图形学》实验报告
一、实验目的
计算机图形学是一门研究如何利用计算机生成、处理和显示图形的
学科。通过本次实验,旨在深入理解计算机图形学的基本原理和算法,掌握图形的生成、变换、渲染等技术,并能够运用所学知识解决实际
问题,提高对图形学的应用能力和编程实践能力。
二、实验环境
本次实验使用的编程语言为 Python,使用的图形库为 Pygame。开
发环境为 PyCharm。
三、实验内容
1、直线的生成算法
DDA 算法(Digital Differential Analyzer)
Bresenham 算法
DDA 算法是通过计算直线的斜率来确定每个像素点的位置。它的
基本思想是根据直线的斜率和起始点的坐标,逐步计算出直线上的每
个像素点的坐标。
Bresenham 算法则是一种基于误差的直线生成算法。它通过比较误
差值来决定下一个像素点的位置,从而减少了计算量,提高了效率。
在实验中,我们分别实现了这两种算法,并比较了它们的性能和效果。
2、圆的生成算法
中点画圆算法
中点画圆算法的核心思想是通过判断中点的位置来确定圆上的像素点。通过不断迭代计算中点的位置,逐步生成整个圆。
在实现过程中,需要注意边界条件的处理和误差的计算。
3、图形的变换
平移变换
旋转变换
缩放变换
平移变换是将图形在平面上沿着指定的方向移动一定的距离。旋转变换是围绕一个中心点将图形旋转一定的角度。缩放变换则是改变图形的大小。
通过矩阵运算来实现这些变换,可以方便地对图形进行各种操作。
4、图形的填充
种子填充算法
扫描线填充算法
种子填充算法是从指定的种子点开始,将相邻的具有相同颜色或属
计算机图形学实验报告
计算机图形学实验报告
计算机图形学实验报告
引言
计算机图形学是研究计算机生成和处理图像的学科,它在现代科技和娱乐产业中扮演着重要的角色。本实验报告旨在总结和分享我在计算机图形学实验中的经验和收获。
一、实验背景
计算机图形学实验是计算机科学与技术专业的一门重要课程,通过实践操作和编程,学生可以深入了解图形学的基本原理和算法。本次实验主要涉及三维图形的建模、渲染和动画。
二、实验内容
1. 三维图形建模
在实验中,我们学习了三维图形的表示和建模方法。通过使用OpenGL或其他图形库,我们可以创建基本的几何体,如立方体、球体和圆柱体,并进行变换操作,如平移、旋转和缩放。这些基本操作为后续的图形处理和渲染打下了基础。
2. 光照和着色
光照和着色是图形学中重要的概念。我们学习了不同的光照模型,如环境光、漫反射和镜面反射,并了解了如何在三维场景中模拟光照效果。通过设置材质属性和光源参数,我们可以实现逼真的光照效果,使物体看起来更加真实。3. 纹理映射
纹理映射是一种将二维图像映射到三维物体表面的技术。通过将纹理图像与物
体的顶点坐标相对应,我们可以实现更加细致的渲染效果。在实验中,我们学
习了纹理坐标的计算和纹理映射的应用,使物体表面呈现出具有纹理和细节的
效果。
4. 动画和交互
动画和交互是计算机图形学的重要应用领域。在实验中,我们学习了基本的动
画原理和算法,如关键帧动画和插值技术。通过设置动画参数和交互控制,我
们可以实现物体的平滑移动和变形效果,提升用户体验。
三、实验过程
在实验过程中,我们首先熟悉了图形库的使用和基本的编程技巧。然后,我们
计算机图形学研究报告
计算机图形学研究报告
计算机图形学是一门新兴的计算机科学,它以复杂而多变的运算和图形技术为基础,应用于电影制作、游戏开发、科学计算和虚拟环境等几乎所有领域。如今,计算机图形学技术在计算机领域中发挥着越来越重要的作用,成为计算机科学研究的重要领域。本文将简要介绍计算机图形学研究的现状,分析其最新研究成果,并提出未来可能的研究方向。
一、计算机图形学的研究进展
计算机图形学是一门以图形处理为中心的计算机科学,它应用于各类现代计算机系统,包括虚拟现实系统、图形用户界面、图形编辑器等等,也是计算机视觉和人工智能研究中重要的一个组成部分。在过去的几十年里,计算机图形学的研究取得了巨大的成就,主要表现在三方面:
(1)图形系统的构建。对图形技术的研究,取得了令人瞩目的成果,计算机技术得以不断拓展,形成了一种复杂而全面的图形系统,这使得计算机图形学的应用变得更加广泛。
(2)图形处理技术取得重大突破。近些年来,研究开发出了一系列新的图形处理技术,其中包括三维重建、图像识别和实时渲染等,这些技术已经广泛应用于计算机图形学的应用开发中。
(3)虚拟现实技术的发展。近年来,随着虚拟现实系统的发展,计算机图形学在虚拟现实领域也发挥了重要作用,如虚拟现实中的三维场景和动画制作等等。
二、计算机图形学的最新研究成果
近年来,计算机图形学取得了许多有益的研究成果,其中包括:(1)图形建模技术的发展。图形建模技术可以将真实世界中的物体和现象精确的仿真,进而进行分析和计算,从而获得精确的结果。
(2)图形处理器的研究。图形处理器的研究已经取得了一定的成果,它们可以提高图形处理的速度和效率,有助于提升图形技术的性能。
计算机图形学报告讲解
成都理工大学
计算机图形学课程设计三维真实感图形设计与绘制
学生姓名:郭耀中
学号:201108030309
年级专业:软件工程4班
学院:信息科学与技术学院
四川·成都
提交日期:2014年4月
2
目录
一、简要说明 (3)
二、实验题目 (3)
1.题目内容说明: (3)
2.技术要点说明 (3)
三、需求分析 (4)
1.课题设计思路 (4)
四、三维图形的设计过程 (5)
1.三维图形设计的过程如下: (5)
2.设计过程说明: (6)
五、三维图形的主程序 (7)
1.部分源码 (7)
六、设计结果 (14)
七、设计小结 (21)
一、简要说明
OpenGL(Open Graphic Library) 是由SGI公司的 IRIS GL 图形库发展而来的三维真实感图形生成工具, 鉴于它的跨平台、高质量、高效率、功能等特点,已经成为各种平台下的三维图形制作及交互式场景处理的工业标准,被广泛地运用于科学计算可视化、计算机动画和虚拟现实等计算机图形学热点问的解决之中。在 Windows 平台下,OpenGL 和 DirectX 是两个开发三维图形应用程序的标准,OpenGL 提供了二维和三维建模、变换、光线处理、色彩处理、纹理映射、运动模糊、动画和实时交互等功能,是绘制真实感三维图形、建立三维交互场景、实现虚拟现实的高性能图形开发工具软件包。与 DirectX 相比,用 OpenGL 来绘制三维地形具有图形质量高、程序可移植性好等优点。
本文充分利用三维图形库 OpenGL 卓越的渲染能力,在 Visual C++ 6.0环境下开发了一种基于 OpenGL 的三维真实感图形显示和渲染的工具
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机图形学课程实
验 报 告
实验题目 班 级 姓 名 学 号 指导教师 日 期
信息与计算科学专业基础课
Computer Graphics
Report Of course experiment
理学院应用数学系
实验说明
试验目的: 掌握TurboC 语言图形函数的使用和学会绘制一般图形。 试验地点: 教九楼401 数学系机房
实验要求(Direction ):1. 每个学生单独完成;2.开发语言为TurboC 或C++,也可使用其它
语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。
实验内容
实验题一
1.1实验题目
用如下图1所示,图中最大正n 边形的外接圆半径为R ,旋转该正n 边形,每次旋转θ角度,旋转后的的n 边形顶点落在前一个正六边形的边上,共旋转N 次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n 边形。要求:(1) n 、R 、N 、θ要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。
1.2实验目的和意义
1. 了解如何利用C 语言和图形函数进行绘图,同时熟练掌握C++图形绘制环境;
C
B A
R1
R2
10
图1
利用C 语言图形函数绘图
实验
1
如左图(一)所示:n=6 θ=100、N =1、R=R1、旋转一次。依次类推,共旋转N 次。
2. 掌握C语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;
3. 通过对Turbo C进行图形程序设计的基本方法的学习,能绘制出简单的图形;
4. 通过绘制N+1个正n边形,了解图形系统初始化、图形系统关闭和图形模式的控制,
并熟练运用图形坐标的设置,包括定点、读取光标、读取x和y轴的最大值以及图形颜色的设置。
1.3程序制作步骤(包括算法思想、算法流程图等)
算法思想:
1.自动搜索显示器类型和显示模式,初始化图形系统,通过printf、scanf语句控制半径r、边数n、多边形的个数k、边的每次旋转角度d,的自由输入;
2.给定一内接圆半径r,由圆内接多边形的算法公式:
x[i]=r*cos((i+1) *2.0*pi/n)+320.0
y[i]=240.0-r*sin(2.0*pi/n *(i+1))
确定出多边形N的各个顶点坐标,然后利用划线函数line(),连接相邻两点,即形成一个正多边形。
3.根据边与角的关系,以及线段定比分点公式,可知旋转后的多边形的各个顶点的坐标。公式如下:
x[i]=(x[i]+x[i+1]/(k+1))
y [i]=(y[i]+y[i+1]/(k+1))
k=360/(n*d) (n为多边形的边数,d为多边形旋转的度数)然后与第二步相同,利用划线函数line(),连接形成又一个旋转过的正多边形,这样就形成了所要绘制的图形;
4.关闭图形系统。
1.4主程序
程序代码:
/*----- 多边形的逐次旋转------*/
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/
int r;
int i,j,n,k,d;
float x,y,q;
int a[100],b[100];
char str1[80],str2[80];
printf("请输入正接圆的半径r:\n");
scanf("%d",&r);
printf("请输入多边形的边数n:\n");
scanf("%d",&n);
printf("请输入多边形的个数k:\n");
scanf("%d",&k);
printf("请输入每次的旋转角度d:\n");
scanf("%d",&d);
initgraph(&graphdriver,&graphmode,"D:\\TC"); /*初始化图形系统*/ printf("\n\t注意:maxx=%d,maxy=%d\n",getmaxx(),getmaxy());
printf("\n\tr=%d, n=%d, k=%d, d=%d",r,n,k,d);
x=(getmaxx()+1)/2.0;
y=(getmaxy()+1)/2.0;
q=360/n; /*角增量*/
q=q*3.1415926/180; /*将角增量化为弧度*/
for(i=1;i<=n;i++) /*计算初始正n角形顶点坐标*/
{
a[i]=(int)((int)x+r*cos((i-1)*q));
b[i]=(int)((int)y-r*sin((i-1)*q));
}
a[n+1]=a[1];
b[n+1]=b[1]; /*闭合正n角形,以便连续画线*/
/*--------画k个正多角形-----------*/
for(i=1;i<=k;i++)
{