zoukankan      html  css  js  c++  java
  • 【HDU 5858】Hard problem(圆部分面积)

    边长是L的正方形,然后两个半径为L的圆弧和中间直径为L的圆相交。求阴影部分面积。

    以中间圆心为原点,对角线为xy轴建立直角坐标系。

    然后可以联立方程解出交点。

    交点是$(frac{sqrt{7} L}{4sqrt{2}},frac{L}{4sqrt{2}})$。

    然后用余弦定理求角度、就可以求扇形面积。

    下图灰色部分面积=半圆-扇形S*2-(大扇形B-三角形T)*2。

    S=(绿色+橙色)的一半,B=(绿色+粉色+浅黄色)的一半,T=(粉色+绿色)的一半

    #include <cstdio>
    #include <cmath>
    #define dd double
    #define sf(a) scanf("%d",&a)
    #define sqr(x) ((x)*(x))
    const dd pi=acos(-1.0);
    using namespace std;
    int main() {
        int t;
        sf(t);
        while(t--){
            int l;
            sf(l);
            dd h=l/sqrt(2),b=l/2.0,l2=sqr(l);
            dd y=h/4.0,x=y*sqrt(7);
            dd b2=sqr(b),a2=b2,c2=sqr(x-b)+sqr(y);
            dd jd=acos((a2+b2-c2)/sqrt(a2)/b/2.0);
            dd s1=jd*b2;
            dd jd2=acos((l2+sqr(h)-a2)/l/h/2.0);
            dd s2=jd2*l2/2;
            dd s3=h*x/2.0;
            dd ss=(s2-s3)*2.0;
            dd by=pi*b2/2.0;
            printf("%.2f
    ",(by-ss-s1)*2);
        }
    }

      

  • 相关阅读:
    QQ空间鼠标代码
    QQ空间Flash
    QQ播放器代码
    QQ空间鼠标代码
    QQ空间Flash
    QQ空间Flash
    第二届“携进杯”师生羽毛球联谊赛
    DataView对象
    数据控件DataGrid数据控件
    数据控件Repeater数据控件
  • 原文地址:https://www.cnblogs.com/flipped/p/5785949.html
Copyright © 2011-2022 走看看