计算凸多边形面积的算法

1. 思路:

  可以将凸多边形(边数n > 3)划分为 (n - 2) 个三角形,分别运用向量叉积计算每个三角形的面积,最后累加各个三角形的面积就是多边形的面积。

2. 求多边形面积的算法模板:  

定义点的结构体
struct Point{    
     double x,y;
 } p[MAXPOINT];

计算三角形面积 
double getS(Point a,Point b,Point c)    
  {  
      return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x)) / 2;   //应用叉积的定义推出的 
  }

计算多边形面积。必须确保 n>=3,且多边形是凸多边形 
double getPS(Point p[], int n)    
 {
     double sumS = 0;
     for(int i = 1; i <= n - 1; i++)
         sumS += getS(p[1], p[i], p[i + 1]);  // n-2个三角形的面积和
     return sumS;
 }

 

posted @ 2014-03-13 17:30  xiaoniu1024  阅读(3018)  评论(0编辑  收藏  举报