2812:Extrusion

keyword

平面幾何 多角形 面積 C++

概要

角柱の底面と体積が与えられたとき、高さを求める問題。
底面積を計算するだけ。いつもの様に符号付き面積で三角形をhogehogeする。

double xs[1001], ys[1001];

int main(){
    int n, i;
    double vol, ans, area;
    while(scanf("%d",&n)){
        if(n<3) break;
        REP(i,n){
            scanf("%lf%lf",xs+i,ys+i);
        }
        xs[n] = xs[0];
        ys[n] = ys[0];
        scanf("%lf", &vol);

        area = 0;
        REP(i,n){
            area += 0.5*(xs[i]*ys[i+1] - ys[i]*xs[i+1]);
        }

        ans = vol / fabs(area);
        printf("BAR LENGTH: %.2f\n",ans);
    }

    return 0;
}