计算凸多边形面积的算法

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;

 }

 

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