计算边不相交的简单多边形面积的方法[简单多边形][C++]
2007-03-17 21:13
831 查看
#include <iostream>
#include <cmath>
const int NUM = 6;
//多边形的各边不能相交,不然计算会出错
//面积为正可以判断多边型正面,面积为负表示多边形背面
double GetArea( POINT *pPoint, int nNum )
{
double S = 0;
for(int i=0; i<nNum-1; i++)
S+=pPoint[i].x*pPoint[i+1].y-pPoint[i+1].x*pPoint[i].y;
S += pPoint[nNum-1].x*pPoint[0].y - pPoint[0].x*pPoint[nNum-1].y;
S /= 2.0;
return S;
}
int main()
{
POINT points[NUM] = {
{0, 0},
{3, 12},
{5, 6},
{8, 8},
{10, 2},
{4, 4}
};
double ss=0;
ss = fabs(GetArea(points, NUM));
std::cout<<ss<<std::endl;
return 0;
}
#include <cmath>
const int NUM = 6;
//多边形的各边不能相交,不然计算会出错
//面积为正可以判断多边型正面,面积为负表示多边形背面
double GetArea( POINT *pPoint, int nNum )
{
double S = 0;
for(int i=0; i<nNum-1; i++)
S+=pPoint[i].x*pPoint[i+1].y-pPoint[i+1].x*pPoint[i].y;
S += pPoint[nNum-1].x*pPoint[0].y - pPoint[0].x*pPoint[nNum-1].y;
S /= 2.0;
return S;
}
int main()
{
POINT points[NUM] = {
{0, 0},
{3, 12},
{5, 6},
{8, 8},
{10, 2},
{4, 4}
};
double ss=0;
ss = fabs(GetArea(points, NUM));
std::cout<<ss<<std::endl;
return 0;
}
相关文章推荐
- 公布计算任意多边形相交部分的面积的方法
- 多边形相交面积计算模版
- hdoj.2892 area【计算几何+圆与多边形相交面积】 2015/08/17
- POJ1645-Area(简单多边形面积计算)
- C++实现多边形面积的计算
- 多边形与圆相交面积计算
- C++ 求多边形面积,(通过计算三角形)
- 算法习题23:用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交
- 【C#/算法】任意圆形和三角形相交部分面积的计算方法
- YTU oj1058: 三角形面积 (C++最简单的四舍五入!!(setprecision(n)方法)
- 2个多边形的关系判断和相交面积计算
- hdu 题目2034(水题),2036(水,简单计算多边形面积),2037(水,贪心,会场安排类)
- C++代码计算任意多边形的面积
- 计算两个矩形重叠面积的简单方法
- 已知点坐标,简单多边形面积的计算
- 用最简单,最快速的方法计算出下面这个圆形是否和正方形相交
- 【C/C++】计算二进制中的1的简单方法
- hdoj.5130 Signal Interference【计算几何+圆与多边形相交面积】 2015/08/17
- 23.用最简单,最快速的方法计算出下面这个圆形是否和正方形相交
- HDOJ5130 多边形和圆相交面积 最简单的模板