2015-11-06 278 views
3

我需要創建具有特定尺寸的海龜並檢查重疊。 由於每個定義的龜沒有擴展名,我想也許這個gis擴展可能是有用的。在Netlogo中有大小的海龜

有一個信封用龜甲狀

let gis:envelope-of self (list (xcor - 2) (xcor + 2) (ycor - 2) (ycor + 2)) 

相關聯的方式,但我不知道如何使用此繪製的信封,並檢查是否有重疊。

另一種方式可能是放棄的念頭,其尺寸一個海龜,並通過使用

gis:turtle-dataset turtle-set 

創建從海龜的GIS數據集,但我不知道如何使用這一個多邊形: - (

任何想法?

+0

我從來沒有使用擴展,但海龜的大小。 https://ccl.northwestern.edu/netlogo/docs/dictionary.html#size這是你的意思嗎? –

+0

龜的形狀是否重要?如果他們是圈子,例如檢查重疊不是太難。 –

+0

我一直以來的尺寸只是爲了展示,但我會檢查一下。 是的,形狀和大小很重要:這是關於房屋分佈的一項工作的開始,所以我將不得不將其映射到實際數據。但你說得對,因爲如果形狀是一個圓形,我可以使用半徑內基元。然而,我可以創建一個記者並用它來檢查重疊。如果你有一個很好的解決方案, –

回答

0

更新爲賽斯的評論作出明確的界和其他人不同的方法。

如果烏龜是圓圈,那麼如果兩隻烏龜的尺寸之和爲</2,則使用distance primitive,如Seth的評論中所述,這是重疊的。

但是,如果你有正方形或其他形狀,那麼你將不得不做一些花哨的東西與heading和各種三角函數,並需要位置的x和y方向的差異xcor和的差異(分別像這樣的東西讓你開始:

to-report xdiff [ turt1 turt2 ] 
    report [xcor] of turt1 - [xcor] of turt2 
end 
+0

你的'find-distance'與'distance'原始內容相同 - 不需要自己做數學,你可以寫'turt2'的[distance turt1]。 「距離」實際上更好,因爲它知道包裝和不包裝的世界;你的代碼只能在一個不包裝的世界中運行。 –

+0

無論如何爲你記者。那一刻我不想爲此建造一個記者。如果他們能拿出s.th的話,我會問那些寫延期的人。 但是,我會及時通知您:-) –

+0

那麼,其中一個貢獻者是Seth Tissue :-) 您認爲這可以通過GIS擴展來解決嗎? –

0

最後我採取了一個簡單的辦法: 因爲我的對象沒有動,我用鄰接的貼片,形成所需大小的塊。在我佔用一個新補丁之前,我檢查它是否已經被使用,如果有的話,我刪除所有新補丁的補丁。 N非常全面,但它爲我工作到目前爲止。