1、Bresenham直线插补(实现多轴同步)
1.1算法原理
Bresenham 是一个快速画直线的算法。在现实中,我们可以根据直线方程画出任意直线,但在计算机中却稍有不同。由于计算机屏幕是由很多栅格(像素点)组成,所以计算机中的直线实际上是通过一系列离散化的像素点来近似表现这条直线。如下a,b两图所示:
根据这样的原理,假设线段端点为,
为偏移量,直线方程为
。则有:
假设已经确定了直线上某个点正好在像素 $P_i(x_i,y_i)$,我们要确定下一个像素$P_{i+1}$是$(x_i+1,y_i)$还是$(x_i+1,y_i+1)$。此时的情况如下:
由上图可知,在处,直线上y的值
,该点距离
和点
的距离分别为
和
,我们选取距离直线上理论点更近的像素点作为下一步要到达的地方,则有: