java 矩形重叠问题_两个矩形重叠的问题
問(wèn):如何判斷兩個(gè)矩形是否重疊?
當(dāng)滿足以下條件時(shí),兩個(gè)矩形不是重疊的
1.一個(gè)矩形在另一個(gè)的上面
2.一個(gè)矩形在另一個(gè)的左邊
一個(gè)矩形可以被表示為兩個(gè)點(diǎn),分別是左上和右下。
我們定義下面四個(gè)變量來(lái)表示:
1. l1 第一個(gè)矩形的左上
2. r1 第一個(gè)矩形的右下
3. l2 第二個(gè)矩形的左上
4. r2 第二個(gè)矩形的右下
所以矩形不重疊的條件是
l1.x > r2.x || l2.x > l1.x? ?// 一個(gè)在另一個(gè)的左邊
l1.y < r2.y || l2.y < r1.y? // 一個(gè)在另一個(gè)的下面
剩下的條件都是重疊
Two rectangles?do not?overlap if one of the following conditions is true.
1) One rectangle is above top edge of other rectangle.
2) One rectangle is on left side of left edge of other rectangle.
Note that a rectangle can be represented by two coordinates, top left and bottom right. So mainly we are given following four coordinates.
l1: Top Left coordinate of first rectangle.
r1: Bottom Right coordinate of first rectangle.
l2: Top Left coordinate of second rectangle.
r2: Bottom Right coordinate of second rectangle.
classPoint{intx,y;};// Returns true if two rectangles (l1, r1) and (l2, r2) overlapbool doOverlap(Pointl1,Pointr1,Pointl2,Pointr2){// If one rectangle is on left side of otherif(l1.x >r2.x ||l2.x >r1.x)returnfalse;// If one rectangle is above otherif(l1.y
總結(jié)
以上是生活随笔為你收集整理的java 矩形重叠问题_两个矩形重叠的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java checkstyle 导入_C
- 下一篇: java url api_深入阅读jav