c 如何求任意多边形的面积

#include <iostream> #include <vector> using namespace std; struct Point//定义坐标结构体 { float x, y; }; float intAreaCalc(vector<Point> &ptVector)//求解多边形的面积(知道多边形的顶点,按顺时针或者逆时针) { int i_count=vecPoly.size(); iCycle=0; float area_temp=0.f; for(int i=0;i<i_count;i++) { area_temp=area_temp+(vecPoly[i].x*vecPoly[(i+1) % i_count].y-vecPoly[(i+1) % i_count].x*vecPoly[i].y); } return abs(0.5*area_temp); } int main() { int n; while(cin>>n && n!=0)输入n,决定是几边形 { vector<Point>pt_vec;//存放多边形的各顶点 Point pt_temp;//临时的Point变量,接收输入的顶点 for(int i=0; i < n;i++)///按照顺序输入多边形的顶点坐标 { cout<<'pt_temp.x = '; cin>>pt_temp.x; cout<<'pt_temp.y = '; cin>>pt_temp.y; pt_vec.push_back(pt_temp); } float area_all = intAreaCalc(pt_vec);/得到多边形的面积 cout<<'多边形的面积是:'<<area_all<<endl; } return 0; }

(0)

相关推荐