hdu 2036 改革春风吹满地

原理:
 
多边形面积在计算机中有一个很好的处理办法就是相量叉乘,我们知道三角形ABC的面积可以等于1/2*|AB|*|AC|*sinBAC,也就是等于ABXAC的模,若A(x1,y1),B(x2,y2),那么S=x1*y2-x2*y1。

叉乘计算凹凸边形都可以

点击打开链接

#include<stdio.h>
int main()
{
    int a[110],b[110];
    int n,i;
    double sum;
    while(scanf("%d",&n),n)
    {
        for(i=0;i<n;i++)
        scanf("%d%d",&a[i],&b[i]);
        for(sum=0,i=1;i<n-1;i++)
        sum+=((a[i]-a[0])*(b[i+1]-b[0])-(a[i+1]-a[0])*(b[i]-b[0]));
    printf("%.1lf\n",sum/2);
}
return 0;
} 


你可能感兴趣的:(利用叉乘计算三角形面积)