Netlogo 在景观中添加斑块簇
我想在景观中添加森林斑块。更准确地说,这个想法是添加补丁集群,比如“补丁集群”示例。与此示例相反,我希望随机分布一些具有相同颜色的斑块簇,而不是完全填充整个景观的几个簇。这是代码的开始:Netlogo 在景观中添加斑块簇,netlogo,Netlogo,我想在景观中添加森林斑块。更准确地说,这个想法是添加补丁集群,比如“补丁集群”示例。与此示例相反,我希望随机分布一些具有相同颜色的斑块簇,而不是完全填充整个景观的几个簇。这是代码的开始: to create-forests repeat 30 [ ask one-of patches [ set pcolor green ask neighbors [ set pcolor green] ] ] end 使用此代码,簇看起来像正方形,而不像“面片簇”示例中的簇。如何在我的景观中添加森林斑
to create-forests
repeat 30 [
ask one-of patches [
set pcolor green
ask neighbors [ set pcolor green] ] ]
end
使用此代码,簇看起来像正方形,而不像“面片簇”示例中的簇。如何在我的景观中添加森林斑块簇
谢谢你的帮助
祝您今天过得愉快
海上一个快速的解决方案是使用航向和距离补片功能
to create-forests
ask patches[set pcolor black]
repeat 5
[
ask one-of patches
[
set pcolor green
repeat 20
[
let a random 360
let b random 2
ask patch-at-heading-and-distance a b
[
ask neighbors4 [ set pcolor green]
set pcolor green
]
]
]
]
end
使用此功能,您可以移动到另一个修补程序邻居。利用a(角度)、b(距离)和重复这部分代码的次数的随机值范围,可以实现不同的森林密度
对于邻居4,我们尝试填充森林中可能出现的黑色斑块(请注意,此技巧的成功与否取决于森林的大小)
更复杂的选择可能是:
to create-forests2
ask patches[set pcolor black]
repeat 5
[
ask one-of patches
[
let size_f (random 2) + 1
let border 2
let big_area [list pxcor pycor] of patches with [abs pxcor <= size_f + border and abs pycor <= size_f + border]
let forested [list pxcor pycor] of patches with [abs pxcor <= size_f + random border and abs pycor <= size_f + random border]
ask patches at-points forested[set pcolor green]
ask patches at-points big_area with[pcolor != green]
[ if count(neighbors with [pcolor = green]) > 6 [ set pcolor green ] ]
]
]
end
以创建-forests2
询问补丁[设置pcolor黑色]
重复5次
[
问一个补丁
[
设大小f(随机2)+1
让边界2
让大面积[list pxcor pycor]的补丁使用[abs pxcor怎么样:
to create-forests
ask n-of 10 patches [ set pcolor green ]
repeat 6 [
ask patches with [pcolor = green] [
ask one-of neighbors4 [ set pcolor green ]
]
]
end
结果如下所示:
使用此代码,绿色斑块簇内(即在簇的中心)有时会有一个黑色斑块。是否可以仅由绿色斑块组成簇?类似: