求多边形面积(计算几何)

求多边形面积

  (2011-10-19 11:38:55)
转载
标签: 

杂谈

分类: 杂代码
http://www.cnblogs.com/cykun/archive/2010/11/25/1887461.html

 
       函数:
              语法:result=polygonarea(Point *polygon,int N);
            
              参数:
                     *polygon:     多变形顶点数组
                     N:   多边形顶点数目
                     返回值:       多边形面积
                   
       注意:
              支持任意多边形,凹、凸皆可
              多边形顶点输入时按顺时针顺序排列
                   
       源程序:
     
       typedef struct {
              double x,y;
       } Point;
     
       double polygonarea(Point *polygon,int N)
       {
              int i,j;
              double area = 0;
            
              for (i=0;i<N;i++) {
                     j = (i + 1) % N;
                     area += polygon[i].x * polygon[j].y;
                     area -= polygon[i].y * polygon[j].x;
                     }
            
              area /= 2;
              return(area < 0 ? -area : area);
       }

你可能感兴趣的:(算法,ACM)