起点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