AutoCAD VBA 两点角度计算

计算角度利用反正切注意斜率存在的条件,X不能为0,先要剔除再坐标中上的情况,在分类讨论计算实际的角度,范围0~2PI

 p0 = pl.Coordinate(0)
        p1 = pl.Coordinate(1)
        Dim v As Variant, lth As Double
        v = Array(p1(0) - p0(0), p1(1) - p0(1))
        Dim ang As Double, sp(0 To 2) As Double
        ang = Atn(v(1) / v(0)) * 180# / (4 * Math.Atn(1))
        If v(0) = 0# Then
            If v(1) > 0 Then ang = 90 Else ang = 270 'y轴
        Else
            If v(1) = 0# Then
                If v(0) > 0 Then ang = 0# Else ang = 180 'x轴
            Else
                If v(0) > 0 Then
                    If v(1) > 0 Then
                        ang = ang '第1象限
                    Else
                        ang = ang + 360 '第4象限
                    End If
                Else
                     If v(1) > 0 Then
                        ang = ang + 180 '第2象限
                    Else
                        ang = ang + 180 '第3象限
                    End If
                End If
            End If
        End If
       
        sp(0) = p1(0): sp(1) = p1(1): sp(2) = 0#
        With ThisDrawing.ModelSpace.AddText(ang, sp, 20)
            .Rotation = ang * (4 * Math.Atn(1)) / 180#
            .color = 3
        End With

 

posted @ 2024-09-17 16:01  南胜NanSheng  阅读(23)  评论(0编辑  收藏  举报