Jac*_*ack 19
如果多边形很简单(除了连续的段对之外没有任何共同点),那么维基百科可以帮助您:
该地区的公式是

(它假设最后一点与第一点相同)
您可以轻松地将其实现为
float area = 0.0f;
for (int i = 0; i < numVertices - 1; ++i)
area += point[i].x * point[i+1].y - point[i+1].x * point[i].y;
area += point[numVertices-1].x * point[0].y - point[0].x * point[numVertices-1].y;
area = abs(area) / 2.0f;
Run Code Online (Sandbox Code Playgroud)
当然顶点必须根据多边形中的自然跟随进行排序.