您的位置:首页 > 其它

求复杂多边形面积的算法

2014-04-15 17:03 260 查看
在skeinforge上看到一个计算复杂多边形面积的python代码,它可看成是利用2+1维的叉积的z坐标的累积,非常巧妙,把它翻译成C++代码和大家共享,如有不足,欢迎指正。
struct Point
{
    float x, y;
};

//Get the area of a complex polygon(refer from skeinforge)
float getAreaLoop(vector<Point> loop)
{
	float areaLoopDouble=0;
	
	Point point,pointEnd;
	
	int i,length=loop.size();
	
	for(i=0;i!=length;++i)
	{
		point=loop[i];
		
		pointEnd=loop[(i + 1) % length];
		
		areaLoopDouble += point.x * pointEnd.y - pointEnd.x * point.y;
	}
	
	return 0.5 * areaLoopDouble;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: