我有框對象的數組,可以通過(X,Y,寬度,高度)等特性這樣定義:算法上擴展一個框來填充的空間
盒Q在角點C.錨定我如何以編程方式擴展盒子Q以佔用其擁有的所有可用空間,同時保持其縱橫比?
我已經有一些運氣通過擴大箱子非常大(從右上角),然後對齊到最遠的盒子的頂部邊緣(在這種情況下是5)。如果此時其他盒子與Q重疊,我移除最遠的盒子(5)並重復(對齊4的頂部邊緣),直到沒有盒子重疊爲止。這種方法的問題是,一個盒子可與Q(框2的下一個圖像中)重疊,但是當我擴展,以滿足它的頂部邊緣,它不再包含,例如:
任何想法的方法將不勝感激,
喬希
「如果他們這樣做,我把他們刪除」---什麼是「他們」?你不是故意刪除你的例子中的方框2? – Petr
編輯澄清,謝謝。 – Josh
除了上邊緣之外,您還應該縮放以符合右邊緣,並檢查實際上遇到的是哪一個,然後選擇較小的一個。在你的例子中,如果你通過延伸其底邊來對齊2的頂邊來縮放Q,則矩形不會相遇。如果通過延長其左邊緣以滿足2的右邊緣來縮放Q,則它們會相遇,所以這是實際的限制。如果兩者都符合,則選擇最小值。 –