从N ^ 2中的一系列点计算体积

时间:2011-12-05 15:08:54

标签: algorithm

给定一系列(integer, integer)点,比如(p1, ..., pn),它们定义(p_i, p_i+1)的行1 <= i < n加上行(p_n, p_1)。生成的行具有不成对交叉的附加属性。计算最终体积的最佳方法是什么?

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?