2014-07-14 54 views
-5

我有一個矩形和其他矩形的列表。 我想從列表中獲取矩形,根據我的矩形,它具有最佳的寬度,高度和長寬比。獲取最佳矩形

例子 我運行我的代碼後,最好的矩形應該是矩形3. 請注意,矩形1是我的矩形,但旋轉。 enter image description here

是我的嘗試(檢查最接近寬+高值)

Rectangle myRectangle = new Rectangle(......) 
Rectangle[] rectangles = new Rectangle[] { 
    new Rectangle(.....), new Rectangle(....)....... 
}; 
int bestRectangle = 0; 
float min = 999999; 
for (int i = 0; i < rectangles.length; i++) { 
    float difference = myRectange.width + myRectangle.height - rectangles[i].width - rectangles[i].height; 
    if (Math.abs(difference) < min) { 
     min = (Math.abs(difference); bestRectangle = i; 
     } 
    } 

這裏的問題是,從我的形象的最佳矩形將矩形1 ..

有沒有人有更好的理念嗎?

+1

分別將它們分別計算 – Sneftel

+0

分別計算寬度和高度的差值 –

+0

爲什麼我要得到 - ? –

回答

1

你沒有減去高度,也計算絕對差異。取而代之的是:

float difference = myRectange.width + myRectangle.height - rectangles[i].width + rectangles[i].height; 

使用本:

float difference = Math.abs(myRectange.width - rectangles[i].width) + Math.abs(myRectangle.height - rectangles[i].height); 

你沒有使用你的方法aspect ratio雖然。你應該添加它也在你的情況。

+0

謝謝,我想這樣做,編輯我的問題,我只是寫了算法在我的腦海裏......但會有相同的結果.. –