逐点比较法第一象限逆圆插补VB源程序(仅供参考):
Sub 偏差计算()
偏差 = Sqr((x动点 - x圆心) 2 + (z动点 - z圆心) 2) - R
End Sub
Sub 插补()
x动点 = x起点: z动点 = z起点:
动点象限判别
xx: Select Case 象限标志
Case 1: 单步连续判断
If 顺逆标志 = "顺" Then '第一象限插补
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
x动点 = x动点 - 1:
Line -Step(0, -x步长), vbRed
Else
z动点 = z动点 + 1:
Line -Step(z步长, 0), vbRed
End If
偏差计算
动点象限判别
If 象限标志 <> 1 Then
GoTo xx
End If
单步连续判断
Loop
ElseIf 顺逆标志 = "逆" Then
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
z动点 = z动点 - 1:
Line -Step(-z步长, 0), vbRed
Else
x动点 = x动点 + 1:
Line -Step(0, x步长), vbRed
End If
DoEvents
偏差计算
动点象限判别
If 象限标志 <> 1 Then
GoTo xx
End If
Loop
End If
Case 2: 单步连续判断
If 顺逆标志 = "顺" Then '第二象限插补
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
z动点 = z动点 - 1:
Line -Step(-z步长, 0), vbRed
Else
x动点 = x动点 - 1:
Line -Step(0, -x步长), vbRed
End If
偏差计算
动点象限判别
If 象限标志 <> 2 Then
GoTo xx
End If
Loop
ElseIf 顺逆标志 = "逆" Then
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
x动点 = x动点 + 1:
Line -Step(0, x步长), vbRed
Else
z动点 = z动点 + 1:
Line -Step(z步长, 0), vbRed
End If
偏差计算
动点象限判别
If 象限标志 <> 2 Then
GoTo xx
End If
Loop
End If
Case 3: 单步连续判断
If 顺逆标志 = "顺" Then '第三象限插补
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
x动点 = x动点 + 1:
Line -Step(0, x步长), vbRed
Else
z动点 = z动点 - 1:
Line -Step(-z步长, 0), vbRed
End If
DoEvents
偏差计算
动点象限判别
If 象限标志 <> 3 Then
GoTo xx
End If
Loop
ElseIf 顺逆标志 = "逆" Then
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
z动点 = z动点 + 1:
Line -Step(z步长, 0), vbRed
Else
x动点 = x动点 - 1:
Line -Step(0, -x步长), vbRed
End If
偏差计算
动点象限判别
If 象限标志 <> 3 Then
GoTo xx
End If
Loop
End If
Case 4: 单步连续判断
If 顺逆标志 = "顺" Then '第三象限插补
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
z动点 = z动点 + 1:
Line -Step(z步长, 0), vbRed
Else
x动点 = x动点 + 1:
Line -Step(0, x步长), vbRed
End If
偏差计算
动点象限判别
If 象限标志 <> 4 Then
GoTo xx
End If
Loop
ElseIf 顺逆标志 = "逆" Then
Do Until (x动点 - x终点) = 0 And (z动点 - z终点) = 0
If 偏差 >= 0 Then
x动点 = x动点 - 1:
Line -Step(0, -x步长), vbRed
Else
z动点 = z动点 - 1:
Line -Step(-z步长, 0), vbRed
End If
偏差计算
动点象限判别
If 象限标志 <> 4 Then
GoTo xx
End If
Loop
End If
End Select
End Sub