Algorithm 版 (精华区)

发信人: Lerry (想不开·撞树), 信区: Algorithm
标  题: 积分法快速求解多边形面积
发信站: 哈工大紫丁香 (2002年07月24日22:43:02 星期三), 站内信件

今天测试了一下,基本正确:)

输入文件第一个数为顶点总数,其它依次是各个点的坐标(空格或者回车分隔)

可以是顺时针或着逆时针顺序的任意多边形(无内交点)

void main(void)

{

    FILE * fp=fopen("input.txt","r");

    float  s=0,x1,y1,x2,y2,i=0,mount;

    fscanf(fp,"%f %f %f",&mount,&x2,&y2);

    for(;x1=x2,y1=y2,++i!=mount;s+=(x2-x1)*(y1+y2))

        fscanf(fp,"%f %f",&x2,&y2);

    printf("Area:%f\n",s>0?s/2:-s/2);

}
  
--
当一个女孩儿觉得她不太容易了解那个男人的时候,她会爱他。

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 天外飞仙]
※ 修改:·Lerry 於 07月24日22:44:35 修改本文·[FROM: 天外飞仙]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.680毫秒