篇一 :计算机图形学实验报告

福建农林大学计算机与信息学院

实验报告

20##年  11 月19 日

实验项目列表

福建农林大学计算机与信息学院实验报告

实验名称:直线段的生成

一、     实验目的和要求:

1. 理解各种画线算法的原理,并主要掌握DDA算法,中点画线算法,Bresenham算法。

2.能够根据画线算法的原理编写出相应的画线算法(这里列出两种算法),并能正确的显示出所要画的线段。

 二.实验内容和原理:

  1.DDA 算法:

1)原理:直接利用计算x轴上的增量或y轴的增量的线段扫描转换算法。

2)内容:1若线段的斜率m的绝对值小于等于1,则在单位x间隔()取样,计算每个y的值,即

  2若线段的斜率m的绝对值大于1,则在单位y间隔(=1)取样,计算每个x的值,即

2. Bresenham算法:

1)原理:利用线段上的点和上下相邻像素点间距离的对比来选择合适的像素点。

2)内容:1定义线段上的某一点到下像素点的距离为的d1,到上像素点的距离为d2,定义  ,并求出的值

  2根据相应的的值来选取点。即的值大于0,则取上像素点,且;若的值小于0,则取下像素点,且

3.中点画线算法:

 1)原理:计算中点在直线的上方还是下方来选择相应的像素点。

 2)内容:1计算线段方程相应的变量x,y对应的系数,且

  2< 0 , 取上像素点,且>0 ,取下像素点,且

三.实验环境

⑴ 硬件:PC机;

⑵软件:Windows操作系统、Visual C++ 6.0 。

四.算法描述及实验步骤

(1)DDA算法代码:

#include<math.h>

#include<graphics.h>

…… …… 余下全文

篇二 :计算机图形学实验报告及代码

第 1 章 概述

一、教学目标

通过本章的学习,使学生能够了解计算机图形学的基本概念、研究内容;当前的发展概况;本门课程的特点和应用。

二、教学要求

1.  了解计算机图形学的概念和研究内容;

2.  了解本门课程的发展概况。

三、教学内容提要

1.   计算机图形学的研究内容

2.   计算机图形学发展概况

3.   计算机图形学特点和应用

4.   计算机图形学当前研究的课题

5.   计算机图形生成和输出的流水线

四、教学重点、难点及解决方法

本章将主要围绕计算机图形学的基本概念进行介绍,介绍研究内容;当前的发展概况;本门课程的特点和应用等等。

五、课时安排

    2学时

六、教学设备

    多媒体

七、检测教学目标实现程度的具体措施和要求

    通过课堂提问的方式来检测学生对基本概念的掌握程度。

八、教学内容

1.1 计算机图形学的研究内容

    计算机图形学(Computer Graphics): 研究通过计算机将数据转换为图形,并在专用显示设备上显示的原理、方法和技术的学科 。

计算机图形表现形式

(1).线条式(线框架图)

用线段来表现图形,容易反映客观实体的内部结构,如各类工程技术中结构图的表示,机械设计中零件结构图及电路设计中的电路原理图等。具有面模型、色彩、浓淡和明暗层次效应,适合表现客观实体的外形或外貌,如汽车、飞机、轮船等的外形设计以及各种艺术品造型设计等。

(2).真实感面模型图形

跑车靓照

计算机图形分类(空间)

(1).二维图形(2D) :在平面坐标系中定义的图形

…… …… 余下全文

篇三 :计算机图形学实验(全)

实验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 <graphics.h>

# include <math.h>

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);

…… …… 余下全文

篇四 :计算机图形学实验报告

实验报告

实验课程:      计算机图形学     

学生姓名:     XXXX              

       学    号:     XXXX          

专业班级:     软件          

20##1225

目    录

    i.     实验一   矩阵变换

    ii.      实验二   图形绘制

  iii.      实验三   曲线的生成算法实现

    iv.      实验四   二维基本图形生成的算法

       v.      实验五   二维填充图的生成算法

…… …… 余下全文

篇五 :计算机图形学实验报告

河南理工大学测绘学院

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

学号             

 


姓名            

 


成绩              

 


评语:

 

交报告日期:  20##年 6 月 25 日


实验项目一:图形学光栅化算法验证实验

实验日期:2012 年6 月 5日

一、实验目的:

1、加强对直线、圆的光栅化算法的理解。工程中的绘图函数不允许使用微软MFC类库CDC类提供的方法,必须使用图形学教材上的光栅化算法。

2、掌握基本图形系统交互设计方法。

3、熟悉windows程序的基本消息处理。

二、你认为实验中的较好的设计或代码:


void CGIS1002_10View::Breshenham_Line(CPoint pt1, CPoint pt2, CDC * pDC)

{

      int dx,dy,x,y,d,d1,d2,inc,tmp;

      dx=pt2.x - pt1.x ;

      dy=pt2.y - pt1.y;

      CPoint b;

…… …… 余下全文

篇六 :计算机图形学实验报告

班级:10计科  姓名:敖智挺   学号:201030457117

实验一  直线生成与二次曲线拟合

实验内容:

应用 Bresenham画线算法实现一程序,完成直线生成。

实验目的:

1. 了解掌握VC下2D图元的扫描转换原理及VC实现;

2. 掌握图元属性原理及VC编程实现方法;

3. 掌握图元区域填充原理及模式,并验证实现相应的图元填充算法。

实验源代码:

#include<math.h>

#include <graphics.h>

#include <conio.h>

main()

{

 int driver=DETECT;

int mode;

int x1,y1,x2,y2;

initgraph(&driver,&mode,"");

 x1=100;y1=200;x2=400;y2=300;

 bsrline(x1,y1,x2,y2,4);

 getch();

closegraph();

}

bsrline(int x1,int y1,int x2,int y2,int c)

{

 int dx,dy;

 int x, y;

 int p;

int delta_p1,delta_p2;

  int inc;

 int tmp;

dx=x2-x1;

dy=y2-y1;

 if((dx>=0 && dy>=0)||(dx<0 && dy<0))

 inc=1;

else

 inc=-1;

  if(abs(dx)>abs(dy))

…… …… 余下全文

篇七 :图形学实验报告

计算机图形学

实  验  报 告  书

      姓名:    

      班级:

      学号: 

中南大学软件学院

                 

二〇##年六月

一.实验的任务、性质与目的

计算机图形学是软件工程专业的一门专业技术课程。计算机图形学应用于生产、工程、文化和艺术等领域,该课程对于培养和提高学生的算法设计和实现能力具有非常重要的意义。

该课程以培养学生算法设计与实现的能力为目标,通过课堂教学和实验,使学生了解、掌握计算机图形学的基本知识和关键技术、了解和熟悉计算机图形学的方法、工具和环境。

二.基本原理

实验主要基于如下知识和内容:

1. 实验环境配置、基本图元绘制;

2. 绘制抛物线和正弦曲线;

3. 图形变换;

4. 颜色和光照,绘制旋转抛物面;

5. 显示列表;

6. 纹理映射;

7. 复杂图形绘制,绘制Bezier曲线,Hermite曲线;

8. 复杂图形绘制,绘制Bezier曲面。

三.实验选题与基本要求

1、实验环境配置、基本图元绘制

配置基本实验环境、安装软件包、建立工程和绘制基本图元,要求学会点、线、三角形、四边形的绘制方法,学会消息传递和响应机制,用一个实例完成上述要求。

2、绘制抛物线和正弦曲线

  计算抛物线和正弦曲线,将结果存放在一个数组中,再用OpenGL函数绘制相应的图形。

3、图形变换

要求学会投影、视口变换、旋转、平移和缩放的编程方法,用一个实例完成上述要求。

4颜色和光照

  要求学会光源设置、材质设置和法向量设置,用一个实例(如旋转抛物面)完成上述要求。

…… …… 余下全文

篇八 :计算机图形学 实验报告(4)

怀化学院数学实验中心

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

实验四:图形的裁剪

一、实验目的

1、掌握二维图形的基本裁剪算法,如编码算法、中点分割算法、Liang-Barsky算法;

2、掌握OpenGL中矩阵堆栈函数的使用,实现简单的组合变换。

二、实验设备(环境)及要求

硬件:普通PC386以上微机;

软件:操作系统:Windows XP,Window7;

开发语言: Turbo C 、Visual C++ 6.0、OpenGl,或其它学生掌握的高级语言。

三、实验内容与步骤

本实验要求完成:

绘制的是一个简单的太阳系,其中包括一个太阳和一颗行星,它们使用线框球体绘制函数实现。当按下键盘“D”或“d”时,行星将实现自转;按下键盘“Y”或“y”时,行星将绕太阳公转。

请同学们认真读懂每一段代码,然后试着修改这段程序,实现

1)将行星的中心倾斜;

2)给行星加上卫星。

四、实验结果与数据处理

代码如下:

 


行星绕太阳运转:

 

添加一颗小行星:

五、分析与讨论

通过本实验的学习,我了解了二维图形的基本裁剪算法,了解了OpenGL中矩阵堆栈函数的使用,实现简单的组合变换。在老师同学的帮助下运用OpenGL实现Sutherland-Hodgman多边形裁剪算法、字符裁剪算法实现Cohen-Sutherland线段裁剪算法。

六、教师评语

   

签名:          日期:          成绩:

…… …… 余下全文