任意多边形面积计算
根据坐标直接按公式计算。
---------------------------------------------------------------
这是一个问题早已经解决的经典问题
假定多边形n个顶点坐标依次是
(x1,y1), ... (xn,yn)
如果n个顶点是逆时针排列,面积就是:
|x1 y1|
|x2 y2 |
...
|xn
yn|
s = 0.5 * { |
| +|
|+
|
| }
|x2 y2|
|x3 y3 |
...
|x1
y1|
如果是顺时针就是上面这个公式的负数
把上面的公式整理得到的就是hnyyy的表达式,
注意他的算法对最后一个行列式的处理有问题
double dMj=0;//
面积
//n
是点数
x[n]=x[0];
y[n]=y[0];
for(int i=0; i
{
dMj+=x[i]*y[i+1]-x[i+1]*y[i];
}
if (n>1)
dMj += x[n]*y[0]-x[0]*y[n]
dMj=fabs(dMj)*0.5;
放心用
,
没有问题的
.
计算几何算法实现
-
任意多边形的面积
点击数:
1082
发布日期:
2006-4-27 21:21:00
【收藏】
【评论】
【打印】
【编程爱好者论坛】
【关闭】
Tag:
算法
//time:
4.27 night
description: