Bresenham算法Bresenham算法及具体程序实现.doc

Bresenham算法Bresenham算法及具体程序实现.doc

ID:57686679

大小:167.50 KB

页数:4页

时间:2020-09-01

Bresenham算法Bresenham算法及具体程序实现.doc_第1页
Bresenham算法Bresenham算法及具体程序实现.doc_第2页
Bresenham算法Bresenham算法及具体程序实现.doc_第3页
Bresenham算法Bresenham算法及具体程序实现.doc_第4页
资源描述:

《Bresenham算法Bresenham算法及具体程序实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数学与软件科学学院实验报告学期:2010至2011第一学期2010年9月25日课程名称:计算机图形学专业:信息与计算科学2007级5班实验编号:02实验项目:Bresenham算法指导教师庞朝阳姓名:学号:实验成绩:一、实验目的及要求1)理解直线的生成算法;2)掌握直线生成算法——Bresenham算法,并用C++程序实现;二、实验内容1)实现Bresenham算法;2)与DDA算法对比(各运行20万次),分析哪种算法较快;3)分析该算法比DDA快的原因。三、主要仪器设备及软件环境1)计算机;2)Vc++6.0。四、具体实验内容:1.基本

2、原理借助于一个误差量(表征直线与当前实际绘制像素点的距离)来确认下一个像素点的位置,另外该算法的巧妙之处在于利用增量计算,只需检查误差量的符号,就可以确认下一列的像素位置。2.误差量的计算(针对斜率k在0到1之间)由图可知:那么设,则,代入上式得:其中,c是常量,,与像素位置无关。令,则的计算仅包括整数运算,它的符号与的符号相同(因为>0):① 当<0时,直线上理想位置与右方像素更接近,取右方像素;② 当>0时,取右上方像素;③ 当=0时,约定取。计算k,k+1步误差参数:两式相减得:(参数c消去),另,则若选择右上方像素(),即,则若选

3、择右方像素(<0),即,则由及,得3.算法优点该算法避免了DDA算法中费时的取整运算4.程序代码(针对斜率k在0到1之间)#include#include"math.h"#defineTRUE1usingnamespacestd;classBresenham{public:voidBresenham_Line(intx0,inty0,intx1,inty1,COLORREFcolor,CDC*pDC){intdx,dy,e,i,x,y;dx=x1-x0;dy=y1-y0;e=2*dy-dx;x=x0;y=y0;intc

4、=2*(dy-dx);intv=2*dy;for(i=0;i<=dx;i++){pDC->SetPixel(x,y,color);x++;if(e>=0){y++;e=e+c;}else{e=e+v;}}}}5.程序结果:5.当k>1时,y总是增1,再用Bresenham误差量判别式可确定x变量是否增1,那上述程序只需变换x和y左边即可实现;当K<0时,考虑x,y递减1。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。