分享

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

 菌心说 2021-09-07
#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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多