计算机图形学基本图形生成算法
- 格式:pdf
- 大小:3.67 MB
- 文档页数:132


计算机图形学
实验报告
学号:
姓名:
班级:计算机 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()函数中调用,实现线、圆的绘制。
《计算机图形学》实验报告(二)
班级: 姓名: 学号:
实验成绩: 优秀 □ 良好 □ 中□ 及格 □ 不及格 □
实验题目:圆弧生成算法
一、实验目的:
1.掌握圆弧的中点画圆算法。
2.掌握在 TC平台上,进行图形程序设计的方法。
3.培养学生利用基本图形生成算法,进行基本绘图程序设计的能力;
二、概述:
本实验是根据光栅图形生成算法,以实现圆弧图形的绘制。
首先要熟悉图形的生成算法原理,然后根据算法原理,编写相应的绘图程序。
三、实验内容:
编写图形程序:中点画圆弧算法程序,并调试运行。
圆弧生成算法程序如下:
#include
#include
#include
void Mid_Circle(int r)
{
int d,x,y; int color=255;
x=0;
y=r;
d=1.25-r;
while(x<=y)
{
if(d<0)
{
d+=2*x+3;
}
else
{
d+=2*(x-y)+5;
y--;
} x++;
putpixel(x, y, color);
}
}
void main()
{
int c;
printf("输入半径?: \n");
scanf("%d",&c);
int graphdriver=DETECT;
int graphmode;
initgraph(&graphdriver,&graphmode,"");
Mid_Circle(c);
_getch();
closegraph();
}
程序调试:
输入半径68,“回车”得结果如下图;
四、实验总结:
通过本次实验使我掌握了圆弧的中点画圆算法和掌握了在 TC平台上,进行图形程序设计的方法。由程序的调试结果可知,我们采用的是1/8画圆法,我们可以用八对称性求出整个圆弧。在做实验之前老师先给我们讲了圆弧的中点画圆算法的知识,然后我们才开始编程、调试、运行、测试,直到做完实验我们才完全掌握圆弧的中点画圆算法,所以只有理论与实践相结合才能完全掌握所学知识。希望自己在以后的课堂上专心听课,为实践打好理论基础。
计算机科学与技术学院
2013-2014学年第一学期
《计算机图形学》实验报告
班级: 110341C
学号: 110341328
姓名: 田野
教师: 惠康华
成绩: 实验(一):平面图形直线和圆的生成
一、 实验目的与要求
1.在掌握直线和圆的理论基础上,分析和掌握DDA生成直线算法、中点生成直线算法、Bresenham生成直线算法、中点画圆算法、Bresenham圆生成算法。
2.熟悉VC6.0MFC环境,利用C语言编程实现直线和圆的生成。
3.比较直线生成三种算法的异同,明确其优点和不足。同时了解圆的生成算法适用范围。
二、 实验内容
1.掌握VC6.0环境中类向导和消息映射函数的概念,并且为本次实验做好编程准备工作。
2. 用C语言进行编程实现上述算法,并且调试顺利通过。
3. 在MFC图形界面中显示不同算法下的图形,并且注意对临界值、特殊值的检验。完成后保存相关图形。
三、算法分析
➢ DDA直线生成算法描述:
1) 给定一直线起始点(x0,y0)和终点(x1,y1)。分别计算dx=x1-x0,dy=y1-y0。
2) 计算直线的斜率k=dy/dx。当|k|<1时转向3);当|k|<=1时,转向4); 3) 当x每次增加1时,y增加k。即(xi,yi)→(xi+1,yi+k)。直到xi增加到x1。并且每次把得到的坐标值利用系统函数扫描显示出来。但要注意对y坐标要进行int(y+0.5)取整运算。结束。
4) 对y每次增加1时,x增加1/k,即(xi,yi)→(xi+1/k,yi+1)。直到yi增加到y1. 并且每次把得到的坐标值利用系统函数扫描显示出来。但要注意对x坐标要进行int(x+0.5)取整运算。结束。
➢ 中点生成算法描述:
算法基本思想:取当前点(xp,yp),那么直线下一点的可能取值只能近的正右方点P1(xp+1,yp)或者P2(xp+1,yp+1)。为了确定好下一点,引入了这两点中的中点M(xp+1,yp+0.5)。这时可以把改点带入所在直线方程,可以观察该中点与直线的位置关系。若F(M)>0,则直线的改点上方,所以下一像素点应取P2点,否则取P1点。此后将该点作为基点,以此类推直到(x1,y1)将得到的各点扫描出来即可。
计算机图形学期末复习
第一章 绪论
●名词解释:图形、图像、点阵法、参数法。
图形:是指能够在人的视觉系统中形成视觉印象的客观对象。
点阵法:是具有灰度或颜色信息的点阵来表示图形的一种方法,它强调图形有哪些点组成,这些点具有什么灰度或色彩。
图形包括哪方面的要素参数法:是以计算机所记录的图形的形状参数与属性参数来表示图形的一种方法。
把参数法描述的图形叫做图形;把点阵法描述的图形叫做图像。
●图形包括哪两方面的要素,在计算机中如何表示它们?
图形的要素可以分为两类,一类是刻画形状的点、线、面、体等几何要素;另一类是反应物体本身固有属性,如表面属性或材质的明暗、灰度、色彩(颜色信息)等非几何要素。
在计算机中表示带有颜色及形状的图和形常用两种方法:点阵法和参数法。
●什么叫计算机图形学?分析计算机图形学、数字图像处理和计算机视觉学科间的关系。
计算机图形学是研究怎样利用计算机来显示、生成和处理图形的原理、方法、和技术的一门学科。
计算机图形学试图将参数形式的数据描述转换生成(逼真的)图像。数据图像处理则着重强调图像之间进行变换,它旨在对图像进行各种加工以改善图像的视觉效果,计算机视觉是研究用计算机来模拟生物外显或宏观视觉功能的科学和技术,它模拟对客观事物模式的识别过程,是从图像到特征数据对象的描述表达处理过程。
●有关计算机图形学的软件标准有哪些?
标准有:计算机图形核心系统(GKS)及其语言联编、三维图形核心系统(GKS-3D)及其语言联编、程序员层次交互式图形系统(PHIGS)及其语言联编、计算机图形元文件(CGM)、计算机图形接口(CGI)、基本图形转换规范(IGES)、产品数据转换规范(STEP)等。
●试发挥你的想象力,举例说明计算机图形学有哪些应用范围,解决的问题是什么?
近年来计算机图形学已经广泛地用于多种领域,如科学、医药、商业、工业、政府部门、艺术、娱乐业、广告业、教育和培训等。