已知凸多边的各个顶点的坐标可以计算其面积,详细如下: 代码如下: // Polygon_area.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> #include<vector> #include<cmath> using namespace std; struct point { double x; double y; }; double poly_area(const vector<point>& v); int _tmain(int argc, _TCHAR* argv[]) { vector<point> poly(4); poly[0].x=0; poly[0].y=0; poly[1].x=0; poly[1].y=1; poly[2].x=1; poly[2].y=1; poly[3].x=1; poly[3].y=0; double result; result=poly_area(poly); cout<<"The area of the polygon is: "<<result<<"/n"; system("pause"); return 0; } /** 计算不规则多边形的面积 @param v 多边形的顶点 @return 多边形的面积 */ double poly_area(const vector<point>& v) { double sum=0.0; if(v.size()==0) return 0; for(unsigned int i=0;i<v.size()-1;i++) { sum+=v[i].x * v[i+1].y ; sum-=v[i].y * v[i+1].x ; } sum=sum+v[v.size()-1].x * v[0].y; sum=sum-v[v.size()-1].y * v[0].x; sum=0.5*fabs(sum); return sum; }