简介
- 1967年,IBM的J.Bresenham提出了Bresenham算法。
- Bresenham算法是在一些约定条件下的最佳逼近。
- Bresenham算法通过前一个像素点提供的信息来判定后一个像素点的位置。
- DDA算法虽也可绘制直线,但该算法中存在类型转换以及除法运算,当需要画大量的直线时,速度慢。而Bresenham算法则只涉及加法和乘法,且乘法是乘2操作,相当于移位,减少了画直线所需的时间。
符号说明(Notations)
- 直线从(x0,y0)开始,到(x1,y1)结束。
- 设
- 假设斜率|m| ≤1。
- 从x = x0开始,每次对x轴的值增加1。
- 令第i个像素点的坐标为(xi,yi)
- 则下一个像素点的坐标只能为(xi + 1,yi)或(xi + 1,yi