前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【HDU 5858】Hard problem(圆部分面积)

【HDU 5858】Hard problem(圆部分面积)

作者头像
饶文津
发布2020-06-02 15:54:44
5090
发布2020-06-02 15:54:44
举报
文章被收录于专栏:饶文津的专栏饶文津的专栏

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

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

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

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

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

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

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

代码语言:javascript
复制
#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\n",(by-ss-s1)*2);
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档