分享

叉乘法求任意多边形面积acm算法源代码

 Pakin 2013-12-09

叉乘法求任意多边形面积
语法:result=polygonarea(Point *polygon,int N);
参数:
*polygon:	多变形顶点数组
N:	多边形顶点数目
返回值:	多边形面积
注意:	 
 	支持任意多边形,凹、凸皆可
 	多边形顶点输入时按顺时针顺序排列
源程序:	 
 	typedef struct {
    double x,y;
} Point; 
double polygonarea(Point *polygon,int N)
{
    int i,j;
    double area = 0;
    for (i=0;i<N;i++) {
        j = (i + 1) % N;
        area += polygon[i].x * polygon[j].y;
        area -= polygon[i].y * polygon[j].x;
        }
    area /= 2;
    return(area < 0 ? -area : area);
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多