Bresenham的直线算法是一种算法,它确定应该选择的n维光栅的点,以便形成两点之间的直线的近似近似。 它通常用于在位图图像中(例如在计算机屏幕上)绘制线基元,因为它仅使用整数加法,减法和位移,所有这些都是标准计算机体系结构中非常便宜的操作。 它是一种增量错误算法。 它是计算机图形学领域最早开发的算法之一。 原始算法的扩展可用于绘制圆圈。
历史Bresenham的线算法以Jack Elton Bresenham命名,他于1962年在IBM开发。 2001年Bresenham写道:
我在IBM的圣何塞开发实验室的计算实验室工作。 Calcomp绘图仪已通过1407打字机控制台连接到IBM 1401。 在1962年夏天投入生产,可能提前一个月左右。当时的节目在公司之间自由交换,因此Calcomp(Jim Newland和Calvin Hefte)有副本。当我在1962年秋季回到斯坦福时,我在斯坦福大学中心图书馆里放了一份副本。 1963年在科罗拉多州丹佛举行的ACM全国大会上接受了线描例程的描述。这一年没有出版任何会议记录,只有发言人的议程和ACM通讯问题的议题。一位来自IBM Systems Journal的人在我发表演讲后问我是否可以发表论文。我很高兴地同意了,他们在1965年将它打印出来。
Bresenham的算法后来被扩展为产生圆,所得到的算法有时被称为Bresenham的圆算法或中点圆算法。
代码案例通过检查y是否需要增加或减少(即dy