- 84
- 0
- 约 25页
- 2017-02-01 发布于重庆
- 举报
计算机图形学_实验报告
课程设计实验报告
实验课程名称: 计算机图形学
实验项目名称: 图形学算法演示
学院: 信息科学与工程学院
专业: 计算机科学与技术2011-3
姓名: 林开春
学号: 201101052009
指导教师:
实验内容:
学会对计算机图形学中涉及的各种图形的绘制方法,并熟悉掌握所用的的函数和方法,实现对图形的绘制,演示。
基本图元绘制算法:DDA绘直线、Bresenham绘直线、Bresenham绘圆
多边形扫描转换算法和区域填充算法实现(扫描线算法为必做,基于求余运算的边缘填充和边标志算法为任选;
线段裁剪和多边形裁剪算法的动画演示实现。(两种线段裁剪算法和H-S多边形逐边裁剪算法)多边形裁剪算法的动画演示要求先画出一个封闭的多边形,再画矩形的裁剪窗口,然后选择裁剪按钮(或命令),按下“上边裁剪”按钮(或执行“上边裁剪”命令),多边形相对裁剪窗口的上边进行裁剪,显示上边裁剪后的多边形,依此进行其它各边裁剪。
用动画实现二维图形变换的各种算法,实现对指定形体的平移、旋转和缩放。(包括类似自行车行走和绕固定点旋转的自旋转物体动画。)
简单三维图形系统:凸多面体的建模、透视投影,隐藏面的消除及基本图形变换(平移、旋转、缩放)
实验说明:方法、步骤
编程语言: C++
IDE版本: Microsoft Visual C++ 6.0
实验方法:使用MFC进行编程,参照实验指导书,一步一步操作,就可以基本完成整个实验的操作了。
1、建立程序框架:创建MFC单文档应用程序
2、添加绘图菜单项
通过更改各个菜单选项属性,设置好ID号,并标明,如图所示
3、在创建的View中添加个消息函数
添加对应消息WM_CREAT的消息函数OnCreate()函数
添加对应鼠标消息的WM_LBUTTONDOWN的消息函数OnLButtonDown();
添加对应鼠标消息的WM_MOUSEMOVE的消息函数OnMouseMove ();
添加对应鼠标消息的WM_RBUTTONDOWN的消息函数OnRButtonDown();
添加对应鼠标消息的WM_MOUSEWHEEL的消息函数OnMouseWheel();
4、声明变量和函数
5、添加各菜单项的消息映射函数
主要添加的响应有,鼠标右键、鼠标右键、鼠标滑轮、鼠标移动、键盘按键响应。
每个工程的建立大同小异,下面将不对工程的建立和设置进行描述和说明。主要讨论程序的算法和实现。具体的设置参见程序。
基本图元
一、实验内容
本实验程序实现的主要函数及其说明
关于绘制图形的算法的函数:
void DDALine(CPoint start,CPoint end,long color);//用DDA算法绘制直线
void MiddleLine(CPoint start, CPoint end,long color);//用中点算法绘制直线
void BresenhamLine(CPoint start, CPoint end,long color);//用Bresenham算法绘制直线
void Rectangle(CPoint start,CPoint end, long color);//绘制多边形
void BresenhamCircle(CPoint center,CPoint t,long color);// 用Bresenham算法绘制圆
void MiddleCircle(CPoint center,CPoint t,long color);//用中点算法绘制圆
void MiddleEllipse(CPoint start,CPoint end, long color);//用中点算法绘制椭圆
二、程序设计说明及源代码:
1、绘制直线的算法
1)、DDA算法
解:
这个算法代码是直接抄写实验书上面的呀,算法比较明显,通过计算x方向和y方向的增量依次画出各个点,而这个代码也写得比较精炼step的应用大大减少代码量。
代码如下:
void CExercise1View::DDALine(CPoint start, CPoint end,long color)
{
CClientDC dc(this);
dc.SetPixel(st
原创力文档

文档评论(0)