怎樣判斷平面上乙個矩形和乙個圓形是否有重疊?

時間 2021-05-05 18:21:50

1樓:

第一的答案還是複雜啊,,,可能是演算法上比較優秀的,如果是單純理解上,我給更簡單的

1、把圓畫乙個外接矩形,然後比較兩個矩形是否重疊。如果不重疊顯然圓與矩形不重疊。

2、如果1重疊了,判斷矩形四個頂點是否在圓上就行

2樓:wyb815

把矩形上下左右各擴圓的半徑的長度,判斷圓心是否在新矩形中,如果不在,則不相交。如果在,繼續判斷圓心是否在原矩形的某個角的外側,如果不在則相交。如果在,計算圓心與角點的距離是否小於等於半徑,如果小於,則相交。

否則不相交。

先做角外側判斷再進行運算效率更佳

3樓:Yi Tache

把矩形四個頂點和圓心應用同乙個平移旋轉變換,該變換使矩形中心落在座標原點,並使矩形的各邊與座標軸平行。然後那個矩形就是自己的AABB了,分別比較座標即可。

4樓:Xi Yang

排名第一的答案說的很清楚了。另外有一本書叫《碰撞檢測演算法技術》,是elsevier出的,裡面系統的講述了基本型之間的相交測試。

5樓:Sails

圓沿著矩形的周長滾一圈,圓心的軌跡為乙個圓角矩形,問題簡化為圓心是否在圓角矩形中;再將圓角矩形擴充套件進乙個新矩形(邊長=原邊長+圓半徑),問題簡化為:

1.新矩形的所有頂點不在圓中

——圓心在新矩形中必有重疊,否則無重疊。

2.新矩形的某頂點在圓中

——原矩形的頂點在圓中必有重疊,否則無重疊。

該方法的判斷條件計算量不高,易程式設計實現。

6樓:黃大寧

以前搞過一下類似的問題,有點懷念,來打個醬油。

2023年MCM的B題MCM/ICM Problems,涉及用圓覆蓋乙個區域的問題。算是題主問題的推廣。當時用的辦法和當前某個匿名使用者的回答類似,就是用畫素的辦法判斷。

畢竟要覆蓋乙個任意區域,而且涉及很多個小圓之間的相互重疊,沒有特別簡單的辦法。

首先考慮所需精度,把欲覆蓋的物件和用於覆蓋的物件都離散化。我是用MATLAB實現的,用了裡面的邏輯陣列儲存相關的資料。在判斷是否覆蓋時,用邏輯與就行了。

考慮問題的複雜度,我覺得這個效率還比較高。當時還得優化覆蓋方式,使圓最少。用基於畫素的辦法,數字影象處理的技術也可以用上,以完成一些更複雜的操作,比如尋找未覆蓋區域之類的。

唉,不過我大概答偏了吧。

7樓:

哼╭(╯^╰)╮,乃們都太文藝了,這才素真正的粗暴。

首先把圓形內部畫素塗成紅的,

然後把矩形內部畫素塗成藍的,

如果有畫素被賦值兩次,

那麼兩圖形重疊~

8樓:

想到同學學kd樹時,給我講的乙個挺優美的方法。求出矩形內距圓心最近的點到圓心的距離是不是小於圓半徑。對每個維度分別求最近點的對應維度的座標,對第i維圓心座標為xi,矩形範圍是ai與bi,若xi在對應範圍中最近點的對應座標yi為xi,否則取區間端點,最後就求出了矩形上的最近點y的座標,這樣擴充套件到K維也比較簡便。

這麼做不需要用計算幾何的任何東西(除了最後求兩點的距離)。

9樓:

判斷圓心到矩形四條邊(注意是線段)

的距離取min是否小於等於r,以及圓心本身就在矩形內即可。

這樣你應該只要寫個叉乘就好了。。應該是對的。

-vc大大求圓和直線交點真是酷炫。。-

10樓:

來個更粗暴的, 如果可以自己定座標系最好, 以圓心為原點, 以和矩形邊平行的直線為軸. 如果給定座標系就換算, 會得到四個值, x1, x2, y1, y2, 四個頂點點的座標是這兩組值兩兩組合.

然後就剩兩步,

x1x2<0 && y1y2<0, 說明圓心在矩形內部, 必重疊x1x2>0 && y1y2>0, 則取 xm = min(x1, x2) 和 ym = min(y1, y2) 即最近頂點距離, 小於半徑即有重疊;

否則 d = min(x1, x2, y1, y2) , |d| < r 則重疊

平面上兩點決定乙個方向,球面上幾點決定乙個方向?

在平面上,平行於x軸的直線方程為y k,因此y對x的導數為零 在二維球面上,平行於赤道的緯線方程為 k,所以 對 的導數也為零 其中,為緯度 為經度,k為常數,k 2,2 所以球面上小圓和大圓的曲率皆為零。你還是沒想過來,下面我再給你詳細說說,任何的圓都是由三點決定的,這三點多數情形下說的是圓上的三...

用乙個平面去截乙個幾何體,得到的截面都是圓,為什麼這個幾何體一定是球體?

反證法。球的定義是三維空間中到給定一點A的距離全相等,那非酋 錯了,非球就是存在到A距離和別的點到A距離不等的點,那麼過該點和A做截面,得出來的就不是個圓。所以只能是球 何者 首先取一族平行平面,從這些平面截出的圓中挑出最大的那個,稱為O1。再取這個圓的任意一條直徑,過該直徑 且不與O1共面 的平面...

乙個矩形至少切割多少次可以重新拼成乙個正方形,切割次數與長寬比有什麼關係?

黃亮anthony 基本關係是面積相等,也就是說 假定 a b 這三個數滿足 a x b,那麼簡單裁出兩個斜邊長度為x的直角三角形,就可以得到兩個邊,剩下的部分只需要補出 x b的部分就可以構成正方形了。這個辦法相當於把a 2b的長方形先平分,再成 a 2 和 2 b的長方形,當比較接近正方形後,再...