您的位置:首页 > 其它

计算多边形的面积

2009-11-02 10:23 176 查看
已知凸多边的各个顶点的坐标可以计算其面积,详细如下:











代码如下:
// 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: