1. 思路:
可以將凸多邊形(邊數n > 3)劃分為 (n - 2) 個三角形,分別運用向量叉積計算每個三角形的面積,最后累加各個三角形的面積就是多邊形的面積。
2. 求多邊形面積的算法模板:
定義點的結構體 struct Point{ double x,y;} p[MAXPOINT];計算三角形面積 double getS(Point a,Point b,Point c) { return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x)) / 2; ? //應用叉積的定義推出的 }計算多邊形面積。必須確保 n>=3,且多邊形是凸多邊形 double getPS(Point p[], int n) {double sumS = 0;for(int i = 1; i <= n - 1; i++)sumS += getS(p[1], p[i], p[i + 1]); // n-2個三角形的面積和return sumS;}
?