我正在尝试创建一个以网格原点为中心的棕色补丁的正方形。以前,我在界面上有一个从0到20的滑块,名为"sink-patch- radius“。然后在我的代码中,我创建了一组以原点为中心的圆形补丁,颜色为棕色+2,半径为"sink-patch-radius",周围的补丁是绿色的。下面是实现这一点的代码(感谢JenB!):
;;create the 'sink'
let sink-centre patch 0 0
set sink-patches [patches in-radius sink-patch-radius] of sink-centre
ask sink-patches [ set pcolor brown + 2 ]
;; create the 'source'
set source-patches patches with [pcolor != brown + 2]
ask source-patches [ set pcolor green ]
所以现在,我希望这个想法保持不变,但我希望它是一个正方形,而不是一个圆形的“下沉区域”。我知道上面的代码将不得不改变,甚至可能是相当多的改变,因为你不能使用"in-radius“来做正方形。我在考虑把滑块改成"sink-patch- length“,这样它就可以调整正方形的边的长度了。我的问题是:如何将其合并到我的代码中,以便获得以原点为中心的棕色补丁的正方形?例如,如果"sink-patch-length“设置为20,那么我希望以原点为中心的20x20正方形(400个单元)的pcolor为棕色+ 2。
任何帮助都是非常感谢的!谢谢。
发布于 2018-12-18 08:33:56
使用内置坐标系。所以你想要(类似于) patches with [abs(pxcor) <= sink-patch-length and abs(pycor) <= sink-patch-length]
。如果你想让它居中,而不是居中,你需要做一些调整,以使边界正确。
https://stackoverflow.com/questions/53819545
复制相似问题