Excel中计算不规则地区或流域面积
利用Excel计算地区或流域面积时,可根据边界情况选取结点,使结点连线与边界偏离较小,采用网格纸或直尺、三角板确定边界结点坐标(两步可同时进行),最后把计算面积(计算不规则多边形面积的方法如下面所述)乘以地图比例尺的平方即为地区或流域面积。如果图幅较大时可分为几部分,然后分别计算求和。
(1)以多边形任一顶点(或不规则图形的边界一点)作为第一个点,然后按顺时针方向依次选取各顶点(或不规则图形的边界结点)。注意逆时针方向选取,最终结果为负,绝对值相等。
(2)确定各顶点(或各结点)的坐标,按步骤(1)的顺序依次填人Excel表格的X,Y栏内,再把第一点的坐标填入最后一行。
(3)计算Sum( (X(i+1)-X(i)) * (Y(i+1)+Y(i)) )/2,即为所求面积。
VBA实现的计算不规则多边形面积
Public Type POINTAPI X As Long Y As Long End Type Public m_NumPoints As Integer Public m_Points() As POINTAPI Private Function SignedPolygonArea() As Single Dim pt As Integer Dim area As Single ' Add the first point to the end. ReDim Preserve m_Points(1 To m_NumPoints + 1) m_Points(m_NumPoints + 1) = m_Points(1) ' Get the areas. For pt = 1 To m_NumPoints area = area + _ (m_Points(pt + 1).X - m_Points(pt).X) * _ (m_Points(pt + 1).Y + m_Points(pt).Y) / 2 Next pt ' Return the result. SignedPolygonArea = area End Function ' Find the polygon's area. Public Function PolygonArea() As Single ' Return the absolute value of the signed area. PolygonArea = Abs(SignedPolygonArea()) End Function