C++ 计算给定 n 个有序顶点多边形的面积
给定一个有 n 个顶点的多边形,其顶点坐标按顺时针或逆时针顺序排列。本例介绍如何计算该多边形的面积。
示例
输入:X[] = {0, 4, 4, 0}, Y[] = {0, 0, 4, 4} 输出:16
输入:X[] = {0, 4, 2}, Y[] = {0, 0, 4} 输出:8
我们可以使用鞋带公式(Shoelace Formula)计算多边形的面积。

面积计算公式如下: Area = 1/2 * | sum(xi*y(i+1)) - sum(x(i+1)*yi) |
上述公式是通过对顶点进行叉积来推导多边形中三角形面积的。以下是具体实现。
示例代码
// C++ program to evaluate area of a polygon using shoelace formula
#include <bits/stdc++.h>
using namespace std;
// (X[i], Y[i]) are coordinates of i'th point.
double polygonArea(double X[], double Y[], int n) {
// Initialize area
double area = 0.0;
// Calculate value of shoelace formula
int j = n - 1;
for (int i = 0; i < n; i++) {
area += (X[j] + X[i]) * (Y[j] - Y[i]);
j = i; // j is previous vertex to i
}
// Return absolute value
return abs(area / 2.0);
}
// Driver program to test above function
int main() {
X[] = {, , };
Y[] = {, , };
n = (X)/(X[]);
cout << (X, Y, n);
}





