UESTC 994兩個圓的公共面積

2021-07-27 20:31:02 字數 951 閱讀 1729

任給兩個圓的圓心座標和半徑,求它們公共部分的面積。

input

有多組測試資料。輸入的第一行是整數tt(0

1000

0),表示測試資料的組數。每一組測試資料只有一行,分別為第乙個圓的圓心座標x

1 x1、y1

y1和半徑r

1 r1

,第二個圓的圓心座標x

2 x2、y2

y2和半徑r

2 r2

,六個數均為整數,相鄰兩數之間有乙個空格。該行沒有其它多餘的符號。0≤x

1,y1

,x2,

y2<104

0≤x1,y1,x2,y2<104

,0,r

2<

1000

0。output

對應每組輸入,輸出一行兩個圓的公共面積,保留兩位小數。該行不能有其它多餘的符號。

sample input

1
0 0 10 19 0 10

sample output

4.18
這道題只要知道怎麼求,還是很簡單的。

這是相交的情況,用余弦公式算出角度,用正弦公式算出三角形面積,因為知道a角大小,那麼他對應的扇形面積也是可以確定的。最終,用扇形面積減去三角形(看自己想選哪個三角形)面積就知道相交的面積了。

**實現:

#includeusing namespace std;

#define pi acos(-1)

int main()

else if(r1 > r2 && d + r2 <= r1)

else

} return 0;

}

UESTC 994 兩個圓的公共面積

兩個圓的公共面積 time limit 1000ms memory limit 65535kb 64bit io format lld llu submit status description 任給兩個圓的圓心座標和半徑,求它們公共部分的面積。input 有多組測試資料。輸入的第一行是整數 t 0...

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

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

兩個鍊錶的公共結點

輸入兩個鍊錶,找出他們的第乙個公共結點。鍊錶結點定義如下 1 struct listnode 2思想 我們可以先遍歷一次得到分別得到兩個鍊錶的長度,然後計算得出長度差n,那麼讓較長的鍊錶先走n步,然後兩個鍊錶一起向後走,直到兩個指標指向同乙個結點。這個結點就是我們要找的 結點。具體 如下 1 int...