2013-03-25 47 views
0

我目前有一個程序繪製重疊的矩形,並想知道是否有一個簡單的方法來確定哪個形狀在頂部(最明顯)。這讓我難以理解,因爲在處理3D時沒有使用z軸。如何確定頂部是什麼矩形?

overlapping rectangles

我試圖通過矩形循環和使用。載有方法,但它在一個特定的點返回所有的矩形,而不是最高水平之一。

我也搜遍了,但也許我使用了錯誤的關鍵字?

+1

你能澄清你的意思是「最明顯」嗎?你的意思是與其他矩形重疊的面積最小的矩形? – 2to1mux 2013-03-25 03:40:44

+0

想必這是你最後一個渲染 – MadProgrammer 2013-03-25 03:42:04

+0

http://imgur.com/o4irIJl 在這種情況下,石灰綠在「頂部」。沒有被另一個正方形重疊? – Elliott 2013-03-25 03:46:35

回答

4

通常當人們這樣做的繪製代碼,他們這樣做:

列表矩形= ....

for (int i = 0; i < rectangles.size(); i++) 
    //paint the rectangle 

所以,如果你要搜索一個點來確定什麼Rectanle它是那麼你應該使用:

for (int i = rectangles.size() - 1; i >= 0; i--) 
{ 

    if (rectangles.get(i).contains(yourPoint)) 
    { 
     // do something 
     break; 
    } 
} 

從結尾開始會給你最後一個矩形畫,這意味着它是在所有其他矩形的頂部。

+0

也許這會解釋一點,我想要達到什麼? http://imgur.com/icjVomN 我有鼠標監聽器按預期工作,並記錄用戶在屏幕上按x和y的位置。從這些合作伙伴中,我怎麼判斷頂端的東西? – Elliott 2013-03-25 03:53:54

+0

我給你答案,只需確保的一點是,你畫的矩形面板的座標。 – camickr 2013-03-25 03:57:13

+0

好吧,會試試看,謝謝。對不起,如果這個問題遇到愚蠢的,但它是凌晨4點:D – Elliott 2013-03-25 03:59:38

相關問題