凸包(polygon area)的面积

Polygon Area

已知凸包上各点的坐标,如何计算出凸包的面积。

如上图所示,构成凸包的点有四个:

(0, 0)
(0, 2)
(2, 0)
(2, 2)

通过搜索得到解答的公式

尝试解答:

解答失败,那么到底是哪里出了问题呢?

以下是我求解面积的核心算法:

// vec存储所有的极点, size是极点的个数
for (int i = 0; i < size; ++i) {
    int i1 = (i+1) % size; // 1 2 3 ... size 0
    area += (vec[i].x * vec[i1].y) - (vec[i].y * vec[i1].x);
}