求矢量图形面积
struct point
{
int x;
int y;
};
std::vector<point> points;
to_area(std::vector<point> ring)
{
double area = 0;
// 计算面积和形心横纵坐标的分子部分
for (size_t i = 0; i < ring.size(); i++)
{
const point& currentPoint = ring.points[i];
const silly_point& nextPoint = ring[(i + 1) % ring.size()];
double product = (currentPoint.x* nextPoint.y) - (nextPoint.x* currentPoint.y);
area += product;
}
area /= 2;
area < 0 ? -area : area;
}