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毫秒