您现在的位置:

逐点比较法直线插补VB程序直线程序

根据该插补软件框图(参见http://www.busnc.com/ly/zhudian/yuanli.htm),:

Sub 偏差计算()

        偏差 = Abs(x终点) × z动点 - x动点 × Abs(z终点)

End Sub

Sub 插补()

Dim c As Integer

        Select Case 象限标志

        Case 1:   '第一象限插补

                Do Until x动点 + z动点 >= 总步数

                If 偏差 >= 0 Then

                   x动点 = x动点 + 1:

                   Line -Step(0, x步长), vbRed

                Else

                   z动点 = z动点 + 1:

                   Line -Step(z步长, 0), vbRed

                End If

                   偏差计算

                Loop

        Case 2:   '第二象限插补

                c = x终点: x终点= z终点: z终点= -c

                c = x步长: x步长 = z步长: z步长 = -c

                Do Until x动点 + z动点 >= 总步数

                If 偏差 >= 0 Then

                   x动点 = x动点 + 1:

                   Line -Step(x步长, 0), vbRed

                Else

                   z动点 = z动点 + 1:

                   Line -Step(0, z步长), vbRed

                End If

                   偏差计算

                Loop

        Case 3:   '第三象限插补

                x步长 = -x步长:  z步长 = -z步长

                Do Until x动点 + z动点 >= 总步数

                If 偏差 >= 0 Then

                   x动点 = x动点 + 1:

                   Line -Step(0, x步长), vbRed

                Else

                   z动点 = z动点 + 1:

                   Line -Step(z步长, 0), vbRed

                End If

                   偏差计算

                Loop

        Case 4:  '第四象限插补

                c = x终点: x终点= -z终点: z终点 = c

                c = x步长: x步长 = -z步长: z步长 = c

                Do Until x动点 + z动点 >= 总步数

                If 偏差 >= 0 Then

                   x动点 = x动点 + 1: Line -Step(x步长, 0), vbRed

                Else

                   z动点 = z动点 + 1: Line -Step(0, z步长), vbRed

                End If

                   偏差计算

                Loop

        End Select

End Sub