计算机图形学_实验报告.docVIP

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

1亿VIP精品文档

相关文档