假設我在二維座標系(浮點座標)中的有限區域內有n個大小相等且平均旋轉的方形框。這些箱子不應該重疊。 現在我想爲另外一個盒子找一個空閒空間。我需要一些提示來解決這個問題。有任何想法嗎?用於擬合一組正方形之間的正方形的圖形算法
0
A
回答
0
這裏應該有一個掃描線算法。你說這些盒子是同樣旋轉的,所以如果有必要,你應該能夠旋轉座標系,使盒子的邊緣平行於x和y座標。然後,我會按照y座標的順序對這些框進行排序。
現在嘗試將盒子放在儘可能最低的位置。從已排序的框中讀取,找到所有足夠低的框以干擾您的放置,並創建這些框的有序集(例如,紅黑樹或類似的容器類)。現在掃描這組盒子,看看是否有足夠大的空隙放置盒子。如果沒有,請使用原始的已排序列表框來查找和刪除最下面的框,以便您可以考慮將新框放在最下面的框的上方,以免干擾。從排序列表中添加更多框以覆蓋所有高度足以干擾框的新可能高度的框。跟蹤您從列表中刪除框的位置,並檢查是否有足夠大的空隙來放置框。如果沒有,重複練習,直到找到可能區域頂部的間隙或空間不足。
這看起來像初始排序的成本N log N,然後每個盒子的成本至多爲log N,以便從有序集合中插入和刪除盒子。檢查間隙不會比這更昂貴,因爲您只檢查剛刪除箱子的位置的間隙。所以我認爲總成本是N日誌N.
相關問題
- 1. 確定正方形和矩形之間關係的算法
- 2. 正方形瓷磚合併算法
- 3. Java:與正方形(要拖動),線(連接正方形)和動畫(正方形跟在線)之間的接口
- 4. 正確的方法形式
- 5. 檢測兩個正方形/矩形之間的重疊JAVA
- 6. 用於檢測正方形或三角形形狀的基於顏色的圖像分割方法
- 7. 兩點之間畫正方形
- 8. 用於組合髒矩形的算法
- 9. 打包正方形和矩形的算法是什麼?
- 10. SVG單曲角正方形/長方形
- 11. ,使一個正方形和更簡單的方法在Python烏龜圖形
- 12. 尋找構成正方形的四元組的算法?
- 13. 使用高圖表的拱形正方形圖表
- 14. 製作一個正方形
- 15. 渲染一個正方形
- 16. 打印一個正方形
- 17. ol'將正方形拼成一個長方形的把戲
- 18. 二維子陣列(一個較大的正方形中的較小正方形)
- 19. 用PHP或JS檢測圖像中的正方形形狀
- 20. JavaFX中的正方形Gridpane
- 21. 已翻譯的正方形之間的OpenGL像素間隙
- 22. ArcGIS JS - 使用多邊形的正方形範圍來創建正方形多邊形?
- 23. 在foor loop的畫布上繪製正方形只繪製一個正方形
- 24. 正方形單元GridPane正方形單元
- 25. 使用angularjs和canvas標籤在另一個正方形內繪製正方形
- 26. 正方形網格上存在多少個傾斜正方形和矩形?
- 27. FA字形只顯示爲正方形
- 28. 大Java幫助?正方形和矩形
- 29. 包裝正多邊形成方形
- 30. CGAffineTransformMakeScale圓形UIView動畫爲正方形
你想要*任何*自由廣場空間,或者可容納最大廣場的自由空間嗎? – Geobits
@Geobits適合的附加廣場與所有其他廣場的尺寸相同。最後,我想要從給定點獲得最近的可用空間 – user1169629