2011-08-22 81 views
3

有兩個重疊的矩形,我需要計算重疊區域(寬度和高度)。請這個圖片:如何計算重疊區域?

enter image description here

+0

這類問題似乎更適合數學堆棧交換網站。 –

+2

這是一個常見的編程面試問題。 – selbie

+0

我相信這不應該被視爲offtopic。這是一個與編程有關的有效問題,它可以有一個明確的答案(它已經有一個)。 – tzot

回答

8

如果直角R1是X1,Y1和具有寬度W1,H1,同樣矩形R2是X2,Y2與寬度W2和高度H2,然後你可以找到左紅色區域等的邊緣(假設兩個矩形的寬度和高度是正如此位置是左下方的角):

left = max(x1, x2); 

類似地,對於右,底部和頂部:

right = min(x1 + w1, x2 + w2); 
bottom = max(y1, y2); 
top = min(y1 + h1, y2 + h2); 

的重疊區域的大小是

height = top - bottom 
width = right - left. 

如果任一如果這些是否定的,不存在重疊。

+0

我用這個來幫助我解決一個編程編程。它可能沒有「代碼」;但它確實提供了算法 - 編碼的一個重要部分。 – Phil

+0

可能不是這類問題的正確站點,但仍然幫助我爲信號處理提供了一個很好的小包。 +1爲一個堅實的答案 – Mizmor