计算机图形学Bresenham算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地理与生物信息学院
2010 / 2011 学年第二学期
实验报告
课程名称:计算机图形学
实验名称:Bresenham直线扫描算法的实现
班级学号 B08021730
学生姓名郭超伟
指导教师曹正林日期:2011 年4 月
计算机图形学
一、实验题目:
Bresenham直线扫描算法的实现
二、实验要求:
学习Visual C++ 6.0集成编程环境的使用、图形设备接口和常用图形程序设计、鼠标编程以及菜单设计等基础知识,从而掌握利用Visual C++进行图形程序设计的方法以及简单的图形画法,并编程实现Bresenham直线扫描转换程序,得出相应的输出图形。
三、实验内容:
1.学习Visual C++ 6.0集成编成环境的使用;
2.掌握Visual C++ 6.0图形设备接口和常用图形程序设计、菜单设计等方法;
3.编程实现Bresenham直线扫描转换程序,得出相应的输出图形;
四、实验过程:
1.算法的基本描述
// 假设该线段位于第一象限内且斜率大于0小于1,设起点为(x1,y1),终点为
(x2,y2).
// 根据对称性,可推导至全象限内的线段.
1.画起点(x1,y1).
2.准备画下个点。x坐标增1,判断如果达到终点,则完成。否则,由图中可知,下个要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点.
2.1.如果线段ax+by+c=0与x=x1+1的交点的y坐标大于M点的y坐标的话,下个点为U(x1+1,y1+1)
2.2.否则,下个点为B(x1+1,y1)
3.画点(U或者B).
4.跳回第2步.
5.结束
2