我目前有一個程序繪製重疊的矩形,並想知道是否有一個簡單的方法來確定哪個形狀在頂部(最明顯)。這讓我難以理解,因爲在處理3D時沒有使用z軸。如何確定頂部是什麼矩形?
我試圖通過矩形循環和使用。載有方法,但它在一個特定的點返回所有的矩形,而不是最高水平之一。
我也搜遍了,但也許我使用了錯誤的關鍵字?
我目前有一個程序繪製重疊的矩形,並想知道是否有一個簡單的方法來確定哪個形狀在頂部(最明顯)。這讓我難以理解,因爲在處理3D時沒有使用z軸。如何確定頂部是什麼矩形?
我試圖通過矩形循環和使用。載有方法,但它在一個特定的點返回所有的矩形,而不是最高水平之一。
我也搜遍了,但也許我使用了錯誤的關鍵字?
通常當人們這樣做的繪製代碼,他們這樣做:
列表矩形= ....
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;
}
}
從結尾開始會給你最後一個矩形畫,這意味着它是在所有其他矩形的頂部。
你能澄清你的意思是「最明顯」嗎?你的意思是與其他矩形重疊的面積最小的矩形? – 2to1mux 2013-03-25 03:40:44
想必這是你最後一個渲染 – MadProgrammer 2013-03-25 03:42:04
http://imgur.com/o4irIJl 在這種情況下,石灰綠在「頂部」。沒有被另一個正方形重疊? – Elliott 2013-03-25 03:46:35