欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

求任意多边形面积

程序员文章站 2024-03-16 20:20:28
...

已知N个顶点的坐标,求多边形的面积
将面积分成若干个三角形,通过向量的叉积求得三角形面积。

#include<stdio.h>
struct point
{
    double x,y;

}p[105];
//求任意多边形面积:将面积分成若干个三角形,通过向量的叉积求得三角形面积。
int main()
{
    int n;
    int i,j,k;
    while(~scanf("%d",&n))
    {
        double sum = 0;
        if(n == 0)
            break;
        for(i = 0;i < n;i ++)
        {
            scanf("%lf %lf",&p[i].x,&p[i].y);
        }
        for(i = 0;i < n - 1;i ++)
        {
          sum += (p[i].x * p[i + 1].y - p[i + 1].x * p[i].y) * 0.5; //三角形面积
        }
        sum += (p[n - 1].x * p[0].y - p[0].x * p[n - 1].y) * 0.5;
        printf("%.1lf\n",sum);
    }
    return 0;
}