簡體   English   中英

檢查多維數組C#中的矩形重疊

[英]Checking for rectangle overlap in multi-dimensional array C#

因此,我正在制作程序地牢制造商,現在我將地圖存儲在多維數組中。 我繪制了n個隨機位置和隨機大小的房間,所有房間都是矩形。 如下圖所示:

在此處輸入圖片說明

“ X”代表房間的一部分,“。” 代表空白空間。 如您所見,由於我是隨機生成這些房間的大小和位置,因此這些房間中有些重疊,因此可以在圖像中看到。

我的問題是我將如何檢查是否存在重疊的矩形,從而刪除重疊的矩形? 不要求任何人對此進行編碼,我只是在努力理解邏輯。

謝謝

1)創建一個2D數組,然后在X放置一個房間之前檢查X ;-)如果存在X,則不要在此處放置新的房間。 不必是火箭科學。 請記住,您對此有控制權。 將房間整理邏輯放入一種可以查看網格和房間尺寸的方法中,使其在兩種模式下運行:mode1 = return TRUE(如果重疊),模式2,更新網格。 打電話一次,看看您是否有合適的新房間,如果不是,請換個房間!

2)蠻力比較:(偽代碼)這是如果您有一個單獨的drawing.2d.rectangles數組。

bool collides(rect newrect, rect[] allrects) 
    for each item in allrects
        if item.intersects(newrect)
            return true

在那里,我沒有“編碼”它;-)

在添加新矩形之前,請調用此例程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM