起点O(0,0),终点A(xe,ye),设进给速度V是均匀的,直线长度L,则有
动点从原点走向终点,可看作是各坐标每经过一个△t分别以增量kxe、kye同时累加的结果。设经过m次累加后,X和Y方向都到达终点A(xe,ye),则
m必须是整数,所以k为小数。选取k时考虑△x、△y≤1,保证坐标轴上每次分配的进给脉冲不超过1个单位(一般为1个脉冲当量)。
xe、ye最大值(寄存器位数n)为2n-1,所以
一般取 ,则有 ,说明DDA直线插补整个过程需要2n次累加能到达终点
当k=1/2n时,对二进制数来说,kxe与xe只在于小数点的位置不同,将xe的小数点左移n位即为kxe。
n位内存中存放xe和kxe的数字是相同的,认为后者小数点出现在最高位数n的前面。
对kxe、kye的累加转变为对xe与ye的累加。
X—Y平面的DDA直线插补器的示意图:
直线插补终点判别:
m=2n为终点判别依据
例5-4设直线起点在原点O(0,0),终点为A(8,6),采用四位寄存器,写出直线DDA插补过程并画出插补轨迹。
由于采用4位寄存器,所以累加次数m=24=16。
累加次数m |
X积分器 |
Y积分器 | ||||
JVX(存xe) |
JRX(∑xe) |
△x |
JVY(存ye) |
JRY(∑ye) |
△y | |
0 |
1000 |
0 |
0 |
0110 |
0 |
0 |
1 |
1000 |
0 |
0110 |
0 | ||
2 |
0000 |
1 |
1100 |
0 | ||
3 |
1000 |
0 |
0010 |
1 | ||
4 |
0000 |
1 |
1000 |
0 | ||
5 |
1000 |
0 |
1110 |
0 | ||
6 |
0000 |
1 |
0100 |
1 | ||
7 |
1000 |
0 |
1010 |
0 | ||
8 |
0000 |
1 |
0000 |
1 | ||
9 |
1000 |
0 |
0110 |
0 | ||
10 |
0000 |
1 |
1100 |
0 | ||
11 |
1000 |
0 |
0010 |
1 | ||
12 |
0000 |
1 |
1000 |
0 | ||
13 |
1000 |
0 |
1110 |
0 | ||
14 |
0000 |
1 |
0100 |
1 | ||
15 |
1000 |
0 |
1000 |
0 | ||
16 |
0000 |
1 |
0000 |
1 |