AUTOCAD VBA求解不规则封闭图形的面积

解决方案 »

  1.   

    给你代码Public Function AreaFromPoint(Point As Variant) As Double
        Dim dblX As Double
        Dim dblY As Double
        Dim dblX_Stock As Double
        Dim dblY_Stock As Double
        Dim k As Double
        Dim dblDaikei As Double
        AreaFromPoint = 0
        dblDaikei = 0
        For k = LBound(Point) To UBound(Point) Step 2
            If k = 0 Then
                dblX = Point(k)
                dblY = Point(k + 1)
                dblX_Stock = Point(k)
                dblY_Stock = Point(k + 1)
            ElseIf k = UBound(Point) - 1 Then
                dblDaikei = dblDaikei + ((Point(k + 1) + dblY) * (Point(k) - dblX))
                AreaFromPoint = (dblDaikei + ((dblY_Stock + Point(k + 1)) * (dblX_Stock - Point(k)))) / 2000000
            Else
                dblDaikei = dblDaikei + ((Point(k + 1) + dblY) * (Point(k) - dblX))
                dblX = Point(k)
                dblY = Point(k + 1)
            End If
        Next k
    End Function