给定一系列(integer, integer)
点,比如(p1, ..., pn)
,它们定义(p_i, p_i+1)
的行1 <= i < n
加上行(p_n, p_1)
。生成的行具有不成对交叉的附加属性。计算最终体积的最佳方法是什么?
答案 0 :(得分:2)
这是一个很好的代码模糊,并解释了它的工作原理:http://alienryderflex.com/polygon_area/
// Public-domain function by Darel Rex Finley, 2006.
double polygonArea(double *X, double *Y, int points) {
double area=0. ;
int i, j=points-1 ;
for (i=0; i<points; i++) {
area+=(X[j]+X[i])*(Y[j]-Y[i]); j=i; }
return area*.5; }
您还应该阅读此问题的上一个版本:How do I calculate the area of a 2d polygon?