Marlin多轴同步算法

1、Bresenham直线插补(实现多轴同步)

1.1算法原理

Bresenham 是一个快速画直线的算法。在现实中,我们可以根据直线方程$ y = k x + b $画出任意直线,但在计算机中却稍有不同。由于计算机屏幕是由很多栅格(像素点)组成,所以计算机中的直线实际上是通过一系列离散化的像素点来近似表现这条直线。如下a,b两图所示:

根据这样的原理,假设线段端点为$(x_1,y_1),(x_2,y_2)$,$\Delta x,\Delta y$为偏移量,直线方程为$f(x) = kx+b$。则有:

K = \frac{y_2-y_1}{x_2-x_1} = \frac{\Delta y}{\Delta x}

假设已经确定了直线上某个点正好在像素 $P_i(x_i,y_i)$,我们要确定下一个像素$P_{i+1}$是$(x_i+1,y_i)$还是$(x_i+1,y_i+1)$。此时的情况如下:

由上图可知,在$x = x_i+1$处,直线上y的值$y = k(x_i+1)+b$,该点距离$(x_i+1,y_i)$和点$(x_i+1,y_i+1)$的距离分别为$d_1$$d_2$,我们选取距离直线上理论点更近的像素点作为下一步要到达的地方,则有:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值