认证会员

    小黑

  • 427文章 0粉丝 5670浏览
  • 简介:这小子很懒什么也没留下。
  • IP属地:四川省
动态详情

数字积分法(DDA)插补直线参考程序(VB)

    更新时间:2023-05-29 17:15浏览次数:276返回列表

Sub 插补X()

    标志X = 0

    If 余数X >= Q Then

       余数X = 余数X Mod Q

       x动点 = x动点 + 1: 标志X = 1

    End If

End Sub

Sub 插补Y()

    标志Y = 0

    If 余数Y >= Q Then

       余数Y = 余数Y Mod Q

       y动点 = y动点 + 1: 标志Y = 1

    End If

End Sub

Sub 插补Z()

    标志Z = 0

    If 余数Z >= Q Then

       余数Z = 余数Z Mod Q

       z动点 = z动点 + 1: 标志Z = 1

End If

End Sub

Sub 插补公共()

    余数X = 余数X + x终点

    余数Y = 余数Y + y终点

    余数Z = 余数Z + z终点

    插补X

    插补Y

    插补Z

    插补记录 = 插补记录 + 1

End Sub

Sub 插补()

Dim c As Integer

插补记录 = 0: 余数X = 0: 余数Y = 0: 余数Z = 0: 划轮廓线

PSet (z原点, x原点), vbRed

    Select Case 象限标志

        Case 1:   '第一象限插补

             Do Until 插补记录 = Q

                插补公共

                Line -Step(z步长 × 标志Z, x步长 × 标志X), vbRed

             Loop

        Case 2:   '第二象限插补

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

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

             Do Until 插补记录 = Q

                插补公共

                Line -Step(x步长 × 标志X, z步长 × 标志Z), vbRed

             Loop

        Case 3:   '第三象限插补

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

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

             Do Until 插补记录 = Q

                插补公共

                Line -Step(z步长 × 标志Z, x步长 × 标志X), vbRed

             Loop

        Case 4:  '第四象限插补

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

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

             Do Until 插补记录 = Q

                插补公共

                Line -Step(x步长 × 标志X, z步长 × 标志Z), vbRed

             Loop

    End Select

End Sub