NYOJ 1186 心理陰影(兩個圓環的相交面積)

2021-06-29 14:02:36 字數 1047 閱讀 5531

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

自從shanghai reginal後,zkc學長的心理就有了陰影。什麼不敢水題,不敢gj,不敢放鬆...(各種不敢)。同樣的你們的zsj學長也是這樣的。並且他們的心理陰影是一樣一樣的。

已知乙個人的心理陰影為乙個環形,那麼求你們的zkc學長和zjs學長站在一起的時候的心理陰影的重疊面積。

輸入t組資料

r,r表示是內圓半徑和外圓半徑。

x1,y1 zkc學長站的位置(抽象為乙個點)

x2,y2 zjs學長站的位置(也抽象為乙個點)

輸出case #k: y

ps:k,第k組資料。y,你們的zkc學長和zjs學長站在一起的時候的心理陰影的重疊面積。

樣例輸入

2

2 30 0

0 02 3

0 05 0

樣例輸出

case #1: 15.70796

case #2: 2.25078

經分析可得:

兩個圓環的相交面積 = 圓環1外圓和圓環2外圓的相交面積 - 圓環1外圓和圓環2內圓的相交面積 - 圓環1內圓和圓環2外圓的相交面積 + 圓環1內圓和圓環2內圓的相交面積。

#include #include using namespace std;

#define pi acos(-1.0) //定義pi

struct circle ;

struct ring ;

struct get_intersection_ringandring

// 求兩圓的相交面積

double get_circleintersectionarea(circle c1, circle c2)

//求圓環和圓環的相交面積

double get_intersectionarea(ring r1, ring r2)

};int main()

return 0;

}

兩個圓公切線求法 兩個圓的公切線

兩個圓的公切線 圓上任意一點擁有唯一的圓心角 struct circle 的極角進行旋轉即可求出切點,進而得到切線 情況 5 的內切線類似情況2 情況 6 的外公切線與情況4完全一樣 情況 6 的內切線也是先求出圓心角 alpha 如何求?cos alpha frac a i 存放第 i 條公切線與...

C 判斷兩個圓是否相交

定義乙個point類,其屬性包括點的座標,提供計算兩點之間距離的方法 定義乙個圓circle類,其屬性包括圓心和半徑 建立兩個圓形物件,提示使用者輸入,判斷兩圓是否相交。include include using namespace std class point double getdist co...

計算兩個圓相交部分的面積

以下是直接封裝好的函式,六個引數,意思分別是第乙個圓的圓心,半徑,第二個圓的圓心,半徑,返回相交部分的面積,如果不相交,則返回零。程式設計的時候直接複製貼上呼叫就行了,至於原理,就是兩個扇形的面積減去四邊形的面積。但是四邊形不一定是凸四邊形,所以我用到了凱 式,直接求面積,管它凸的還是凹的!扇形的圓...