判斷平面上矩形和圓形的重疊

2021-10-04 18:58:53 字數 1071 閱讀 4482

參考:知乎高讚回答:怎樣判斷平面上乙個矩形和乙個圓形是否有重疊?

第一步:將矩形的中心平移至座標軸圓心處,同時圓也要同步變換。

第二步:將圓變換置第一象限

第三步:計算 u

⃗\vec u

u,u⃗=v

⃗−h⃗

\vec u = \vec v -\vec h

u=v−

h;注:v

⃗\vec v

v表示由變換之後的矩形中心指向變換之後圓心的向量,h

⃗\vec h

h表示由變換之後的矩形中心指向矩形右上端點的向量。

第四步:不妨假設u⃗=

(x,y

)\vec u=(x,y)

u=(x,y

) 將x,y中小於0的座標都置為0,如第二幅圖所示;

第五步:如果∣u⃗

∣≤ra

dius

|\vec u| \leq radius

∣u∣≤ra

dius

則說明有重疊,否則沒有。

**實現

( x1

,y1)

(x_1,y_1)

(x1​,y

1​)表示矩形的左下端點的座標,(x2

,y2)

(x_2,y_2)

(x2​,y

2​)表示是右上角的座標。

bool

checkoverlap

(int radius,

int x_center,

int y_center,

int x1,

int y1,

int x2,

int y2)

注:使用均來自 知乎高讚回答:怎樣判斷平面上乙個矩形和乙個圓形是否有重疊?

復平面上的初等解析幾何 圓和直線

今天搬完了宿舍,發現去年複習復分析的時候整理了一下這一點,下面我將其 tex 化,原手寫稿請見這裡。下面介紹一些復平面上的直觀,因為我們解析幾何通常以實數為基本,遇到復平面上的直線和圓時有時會很棘手,下面對此作一些整理。注 之後 overline 均表示 z 的共軛。首先是圓和直線的方程。命題1.復...

關於如何判斷在平面上的兩條線段是否相交

今天面試某公司時,被問道這道題目 解決方法 1.傳統判斷 這是我當時想到的答案 求出兩條線段所對應的直線的交點 若直線不相交,那麼線段肯定不想交 若有交點,則判斷該交點是否分別在兩條線段上,若符合條件,則兩條線段相交,否則不想交 這是乙個很簡單也最容易嚮導的思路,於是我試著程式設計實現,結果確實寫 ...

我寫的判斷圓和矩形詳細位置的函式

判斷圓與長方形的關係,一共四種關係 圓與長方形不包含也不相交,返回1 相交返回2 圓在長方形內部返回3 長方形在圓內部返回4 假定矩形由d1,d2,d3,d4頂點按順時針方向組成,ywz為圓心位置,yzj為圓直徑。int y zfx wz d3dxvector2 ywz,float yzj,d3dx...