Netlogo 在大空间尺度上构建斑块簇

Netlogo 在大空间尺度上构建斑块簇,netlogo,Netlogo,我使用中的代码构建补丁,如下图所示 代码如下: to make-cluster loop [ let cluster [patches in-radius (2 + random-float 2)] of one-of patches if all? (patch-set [neighbors] of cluster) [pcolor = black] [ ask cluster [ set pcolor green ] stop ] ] clear-all repeat 20

我使用中的代码构建补丁,如下图所示

代码如下:

to make-cluster
loop [
 let cluster [patches in-radius (2 + random-float 2)] of one-of patches
 if all? (patch-set [neighbors] of cluster) [pcolor = black] [
   ask cluster [ set pcolor green ]
   stop ] ]

clear-all repeat 20 [ make-cluster ]

当我在较大的空间范围内使用此代码时(即1000 x 1000个面片,面片大小=1像素),绿色面片类似于圆形(参见下面的第二个图)。

如何获得第一个图中所示的补丁


非常感谢您的帮助。

如果您的目标是简单地拥有异构区域(而不是具体的块状、对称的东西),您可以在这里找到一些答案:

弗兰克的解决方案和我的第一个解决方案可能会在这么大的一个世界上运行得相当慢。我刚刚添加了一个解决方案,可以扩展到您这样大小的世界。为了方便起见,我也把它放在这里:

to make-blob [ area x y ]
  let blob-maker nobody
  crt 1 [ set blob-maker self setxy x y ]
  let border patch-set [ patch-here ] of blob-maker
  repeat area [
    ask blob-maker [
      ask min-one-of border [ distance myself ] [
        set pcolor green
        set border (patch-set border neighbors4) with [ pcolor = black ]
      ]
      rt random 360
      fd .8
    ]
  ]
  ask blob-maker [ die ]
end

这就是说,如果您喜欢块状,通常情况下,块状结构中具有大量面片的模型可以重新加工为具有少量面片的模型,这些面片的行为非常相似。例如,一种策略是缩小海龟的大小和移动,这样对它们来说,世界仍然相对较大。

你能告诉我为什么要这样做吗?我想有一个更好的总体策略。我想建造一个绿色斑块代表森林斑块的景观。我发现第一幅图很有趣,它捕捉到了森林斑块(即不同形状的森林斑块)的异质性,而不是矩形、圆形或方形斑块。谢谢你的帮助。既然你对第一个图形的块性还满意,为什么还要增加这么多补丁呢?谢谢Bryan!我增加了补丁的数量,例如,0.6 km²的集群。理想情况下,我想控制我的景观中森林集群的面积。第一个图中的集群应该具有与用户指定的相同的面积(绿色补丁的数量)。哦!我想这与以下模式相同:。看起来你有两块不同规模的土地。森林等是巨大的。然而,路径很小。可以考虑用链接代替路径来表示路径。然后你可以增加每个补丁代表的森林数量。我无法运行脚本。。我收到一条错误消息:“make blob expected 3 inputs”(生成blob预期3个输入)请问,我如何运行脚本?您需要将三个参数传递给
make blob
。例如:
make blob 20 3 4
将生成一个由20个补丁组成的blob,这些补丁从
patch 3 4
开始制作。我一定没有很好地理解它,因为在我的
中,要生成blob[20 3 4]就让blob maker nobody crt 1[set blob maker self setxy 3 4]就让border patch set[patch here]对于blob maker…
它仍然不起作用。因此,请按照代码选项卡中的显示从post输入代码(从
生成blob[area x y]
开始,以
结束
)。然后,在命令中心,输入
makeblob2034