From: 011netservice@gmail.com Date: 2022-04-24 Subject: 多邊形面積計算.txt, 歡迎來信交流. Calculate the area of a Polygon. 計算不規則多邊形面積 public static double ZPolygonArea(List Polygon) { double SumXY = 0, SumYX = 0; for (int i = 0; i < Polygon.Count; i++) { int iNext; if (i < Polygon.Count - 1) iNext = i + 1; else iNext = 0; SumXY += Polygon[i].X * Polygon[iNext].Y; SumYX += Polygon[i].Y * Polygon[iNext].X; } return (SumXY - SumYX) / 2; } 例如: 5點多邊形. 1. 逆時鐘順序端點排列, 並且多補上第一點到最後: A(-3, -2) B(-1, 4) C( 6, 1) D( 3, 10) E(-4, 9) A(-3, -2) 2. XY加總, 將(每一點的 X 乘上 下一點的 Y): A(-3, -2) B(-1, 4) = -12 C( 6, 1) = -1 D( 3, 10) = 60 E(-4, 9) = 27 A(-3, -2) = 8 --------------- sum: 82 3. YX加總, 將(每一點的 Y 乘上 下一點的 X): A(-3, -2) B(-1, 4) = 2 C( 6, 1) = 24 D( 3, 10) = 3 E(-4, 9) = -40 A(-3, -2) = -27 --------------- sum: -38 4. 面積 = (XY加總 - YX加總)/2): (82-(-38))/2 = (82 + 38)/2 = (120/2) = 60. 補充: 1. 若座標是用順時針端點列表, 則結果為負數. 2. 若是有兩條線相交的多邊形, 例如八字形, 則 2.1 面積=(逆時針端點列表計算的結果 - 順時針端點列表計算的結果), 2.2 或 面積=兩個(逆時針端點列表計算的結果). ref: https://zh.wikihow.com/%E8%AE%A1%E7%AE%97%E5%A4%9A%E8%BE%B9%E5%BD%A2%E9%9D%A2%E7%A7%AF