關於判斷乙個矩形能否容下兩個圓

2021-08-02 02:00:06 字數 585 閱讀 8741

給定兩個圓和乙個矩形,判斷兩個圓能否放入矩形內。其中,a,b,r1,r2都是浮點數。

考慮兩個圓能夠放入的乙個最基本的必要條件是:半徑大的圓放進去後,半徑小的圓還可以放進去。也就是滿足

min(a,b)>=max(r1,r2)*2

接下來就分析能否放入的臨界點,設想右側短邊是乙個可以滑動的擋板,從右向左滑動。當a特別大的時候,兩個圓靠近呈相切狀態,兩個圓可以同時與底面相切(但是這並不意味著最節省空間。。。)當矩形不斷內縮時,達到臨界狀態,兩個圓分別和矩形相對的邊相切,即理想狀態下每條邊只與乙個圓相切。這個時候,就不可以再繼續收縮了。

#include

#include

#include

#include

#include

using

namespace

std;

bool judge(double a,double b,double r1,double r2)

int main()

return

0;}

判斷兩個矩形是否重疊

兩個矩形的邊均與x軸或y軸平行,即軸對齊的矩形 將第乙個矩形記做a,第二個矩形記做b 判斷矩陣a與矩陣b是否重疊 邊沿重疊也認為是重疊 第一種方案,正向思維 按照一般的思路,先列舉出所有的矩形重疊的情況,然後,判斷是否是其中一種,如圖所示,共有四種重疊情況,我們使用紫色代表矩形a,紅色代表矩形b,並...

C 判斷兩個圓是否相交

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

C 判斷兩個矩形是否重疊

矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...