您好,我有左邊這個爛攤子爛攤子,它幾乎與一些孔矩形陣列(標記爲紅色)。我正在尋找一種方法來將它們結合起來,以儘可能少的矩形結束,並且最好讓它們中的大部分儘可能接近正方形。看看右邊的圖像,這就是我想要完成的事情,只是稍微漂亮些,最好是自動化一點。
我需要這個遊戲,它不會在運行時完成,所以速度並不是真正的問題(除非它非常慢,因爲我必須在相當大的範圍內完成),但我從來沒有之前必須做這樣的事情,我真的不知道從哪裏開始。
我已經試過bruteforcing我的方式通過數組,從左上方的正方形和種類的合併開始,直到沒有任何合併剩餘,但它確實沒有那麼高效,因爲它不能考慮合併矩形3x2,4x3等。
如果你能指出我的任何算法,可以處理這種事情或有一個這樣可以完成的想法,將不勝感激。謝謝!
我有一段時間後有點類似的問題:https://stackoverflow.com/questions/11002205/find-all-rectangular-areas-with-certain-properties-in-a-矩陣然而,在我的情況下,產生的矩形可能會重疊。也許你可以調整它,找到所有重疊的最大尺寸的矩形,然後對於由多個矩形覆蓋的每個區域,將其恰好添加到那些矩形中的一個。 – HugoRune
只是所以我完全理解,是通過在一個大的矩形中繪製垂直/水平線,然後將一些隨機創建的矩形選爲「紅色」矩形創建的矩形? –
不,我從一張只有紅色長方形的紙張開始,然後將整張紙片切成四周。 – Otopkin