面积不规则

Nav*_*een 8 c++ math shapes

我有一组点在图像上.这些点形成不规则的闭合形状.我需要找到这个形状的区域.是否有任何身体是用于计算面积的常规算法?或者在诸如boost之类的库中是否有任何支持?我正在使用C++.

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)

当然顶点必须根据多边形中的自然跟随进行排序.