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);
}
近期评论