已知坐标求多边形面积

来源:互联网 发布:普通网络作家收入 编辑:程序博客网 时间:2024/05/16 04:44

   思路   已知三角形坐标求面积

#include<stdio.h>

int main(){    double a,b,c,d,e,f,s;    while( scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f)){   if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)          return 0;        s=(a*d+c*f+b*e-e*d-b*c-a*f)/2;        if(s<0) s=-s;        printf("%.1lf\n",s);       }}        
     另外可以用海伦公式求面积
,那么多边形面积也就可以求了。我们把多边形的中心默认为多的三角形的公共顶点,放在直角坐标系下o(0,0)的位置

根据叉乘的原理,向量OA叉乘向量OB等于三角形OAB面积的2倍,,将它们的值相加(sum+=s;)就得到n边行面积德和

#include<stdio.h>struct stu{    double x;    double y;} a[1000];int main(){    int n,j;    while(~scanf("%d",&n))    {        for(int i=0;i<n;i++)        {            scanf("%lf%lf",&a[i].x,&a[i].y);        }        double area=0;        for(int i=0;i<n;i++)        {            j=(i+1)%n;            area+=a[i].x*a[j].y-a[j].x*a[i].y;        }        if(area<0) area=-area;        printf("%.2lf\n",area/2);    }}



                                                                                   

                  

                                                                                       

0 0