1179. Extrusion (多边形面积)

来源:互联网 发布:1024程序员节 微博 编辑:程序博客网 时间:2024/05/29 09:14

利用叉乘。已知向量a,b,c,三角形的面积为(a*b+b*c+c*a)/2,(*号为叉乘,a*b=a.x*b.y-a.y*b.x)。


#include<stdio.h>#include<math.h>struct Point {double x, y;}p[500];double polyS(int n){double s=0;for(int i=0;i<n-1;++i){s+=p[i].x*p[i+1].y-p[i].y*p[i+1].x;}s+=p[n-1].x*p[0].y-p[n-1].y*p[0].x;return fabs(s)/2;}int main(){int n;double v;while(scanf("%d",&n),n>=3){for(int i=0;i<n;++i)      scanf("%lf %lf",&p[i].x,&p[i].y);scanf("%lf",&v);printf("BAR LENGTH: %.2f\n",v/polyS(n));}return 0;}