直线圆弧插补程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

直线插补

Private Sub Command1_Click() Command1.Enabled = False

Line (x(0), y(0))-(xa, ya)

f(0) = 0

For i = 0 To n - 1

If (xa >= 0) And (ya >= 0) Then

If f(i) >= 0 Then

For j = x(i) To x(i) + 1 Step 0.0001 PSet (j, y(i)), 255

Next j

x(i + 1) = x(i) + 1

y(i + 1) = y(i)

f(i + 1) = f(i) - ya

Else

For j = y(i) To y(i) + 1 Step 0.0001 PSet (x(i), j), 255

Next j

y(i + 1) = y(i) + 1

x(i + 1) = x(i)

f(i + 1) = f(i) + xa

End If

End If

If (xa > 0) And (ya < 0) Then

If f(i) >= 0 Then

For j = x(i) To x(i) + 1 Step 0.0001 PSet (j, y(i)), 255

Next j

x(i + 1) = x(i) + 1

y(i + 1) = y(i)

f(i + 1) = f(i) + ya

Else

For j = y(i) To y(i) - 1 Step -0.0001 PSet (x(i), j), 255

Next j

y(i + 1) = y(i) - 1

x(i + 1) = x(i)

f(i + 1) = f(i) + xa

End If

End If

If (xa < 0) And (ya > 0) Then

If f(i) >= 0 Then

For j = x(i) To x(i) - 1 Step -0.0001 PSet (j, y(i)), 255

Next j

x(i + 1) = x(i) - 1

y(i + 1) = y(i)

f(i + 1) = f(i) - ya

Else

For j = y(i) To y(i) + 1 Step 0.0001 PSet (x(i), j), 255

Next j

y(i + 1) = y(i) + 1

x(i + 1) = x(i)

f(i + 1) = f(i) - xa

End If

End If

If (xa < 0) And (ya < 0) Then

If f(i) >= 0 Then

For j = x(i) To x(i) - 1 Step -0.0001 PSet (j, y(i)), 255

Next j

x(i + 1) = x(i) - 1

y(i + 1) = y(i)

f(i + 1) = f(i) + ya

Else

For j = y(i) To y(i) - 1 Step -0.0001 PSet (x(i), j), 255

Next j

y(i + 1) = y(i) - 1

x(i + 1) = x(i)

f(i + 1) = f(i) - xa

End If

End If

Next i

End Sub

N圆插补

Private Sub Command3_Click() Command3.Enabled = False

r = ((xa ^ 2) + (ya ^ 2)) ^ (1 / 2) Circle (0, 0), r

Command3.Enabled = False

f(0) = 0

For i = 0 To n - 1

If (x(0) > 0) And (y(0) >= 0) Then If f(i) >= 0 Then

For j = x(i) To x(i) - 1 Step -0.0001 PSet (j, y(i)), 255

Next j

x(i + 1) = x(i) - 1

y(i + 1) = y(i)

f(i + 1) = f(i) - 2 * x(i) + 1

Else

For j = y(i) To y(i) + 1 Step 0.0001 PSet (x(i), j), 255

Next j

y(i + 1) = y(i) + 1

x(i + 1) = x(i)

f(i + 1) = f(i) + 2 * y(i) + 1

End If

End If

If (x(0) <= 0) And (y(0) > 0) Then If f(i) < 0 Then

For j = x(i) To x(i) - 1 Step -0.0001 PSet (j, y(i)), 255

Next j

x(i + 1) = x(i) - 1

y(i + 1) = y(i)

f(i + 1) = f(i) - 2 * x(i) + 1

Else

For j = y(i) To y(i) - 1 Step -0.0001 PSet (x(i), j), 255

Next j

y(i + 1) = y(i) - 1

x(i + 1) = x(i)

f(i + 1) = f(i) - 2 * y(i) + 1

End If

End If

If (x(0) < 0) And (y(0) <= 0) Then If f(i) >= 0 Then

相关文档
最新文档