布雷森汉姆直线演算法(Bresenham‘s line algorithm)介绍

布雷森汉姆直线演算法(Bresenham’s line algorithm)是用来描述两点间决定一条直线的算法,本人发现它可以用于确定栅格地图中两点间直线经过的栅格位置,它会算出一条线段在点阵图上最接近的点。这个算法只会用到较为快速的整数加减法和位元位移,常用绘制电脑平面中的直线,是计算机图形学中最先发展出来的演算法。
Jack E.Bresenham于1962年在IBM发明了此算法,于1963年在丹佛举行的美国计算机协会全国大会上发表了该演算法,论文则刊登在1965年的 IBM Systems Journal 之中。经过少量的延伸之后,原本用于画直线的演算法也可以用来画圆,且同样可用较为简单的算术运算来完成,避免了计算二次方程、三角函数或递归的分解较为简单的步骤。修改后的算法称为Bresenham 画圆演算法中点画圆演算法

演算方法

在这里插入图片描述
假设我们需要从(x0,y0)这一点到(x1,y1)画一条直线,两点之间的水平距离为x1-x0,垂直距离为y1-y0,直线斜率设为m(方便理解,假设0<m<1),由于斜率在0到1之间,故我们只需要找出当x到达某个数值时会使得y值加1的位置,若x未到达这个位置,y值保持不变。
要实行这个思想,我们需要计算每个像素点到该直线之间的误差,每当x的值增加1,误差的值就会增加m,当累积的误差超出0.5,说明y值该发生变化了,直线比较靠近下一个像素点,y值加1。
理解这个思想了,其他数值斜率的也可理解了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值