Netlogo 生成具有随机大小和位置的河流
我正在做一个较小的项目,有一个问题我找不到任何解决方案 我想随机生成河流。我的计划是随机生成一些大小和位置不同的河流。有人知道如何随机生成河流吗 我试过几种方法。我确实成功地生成了,但我希望它更像河流(直线),而不是“聚集” 我使用下面的代码来获得上面的图片Netlogo 生成具有随机大小和位置的河流,netlogo,Netlogo,我正在做一个较小的项目,有一个问题我找不到任何解决方案 我想随机生成河流。我的计划是随机生成一些大小和位置不同的河流。有人知道如何随机生成河流吗 我试过几种方法。我确实成功地生成了,但我希望它更像河流(直线),而不是“聚集” 我使用下面的代码来获得上面的图片 ; Generating random rivers. ca ask patches with [pycor = (random 16) or pxcor = (random 16)] [ set pcolor brown ask
; Generating random rivers.
ca
ask patches with [pycor = (random 16) or pxcor = (random 16)]
[
set pcolor brown
ask patches in-radius random 3 [set pcolor brown]
]
谢谢你花时间
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu强
编辑:
看来我取得了一些进展。这是我最接近我想要的
to setup
ca
ask n-of 2 patches [
spread-right
]
ask n-of 2 patches[
spread-left
]
ask n-of 2 patches[
spread-down
]
ask n-of 2 patches[
spread-up
]
end
to spread-right
if pxcor < max-pxcor [
ask n-of 1 neighbors with [ pxcor = [pxcor] of myself + 1] [
set pcolor brown
spread-right
]
]
end
to spread-left
if pxcor > min-pxcor [
ask n-of 1 neighbors with [ pxcor = [pxcor] of myself - 1] [
set pcolor brown
spread-left
]
]
end
to spread-down
if pycor > min-pycor [
ask n-of 1 neighbors with [pycor = [pycor] of myself - 1][
set pcolor brown
spread-down
]
]
end
to spread-up
if pycor > max-pycor [
ask n-of 1 neighbors with [pycor = [pycor] of myself + 1][
set pcolor brown
spread-up
]
]
end
设置
ca
询问2个补丁中的n个[
右转
]
询问2个补丁中的n个[
向左蔓延
]
询问2个补丁中的n个[
摊开
]
询问2个补丁中的n个[
摊开
]
终止
向右传播
如果pxcormin pxcor[
用[pxcor=[pxcor]问我自己的n个邻居-1][
设置颜色为棕色
向左蔓延
]
]
终止
摊开
如果pycor>min pycor[
用[pycor=[pycor]自己的[1]询问n-1个邻居[
设置颜色为棕色
摊开
]
]
终止
摊开
如果pycor>max pycor[
用[pycor=[pycor]自己+1]询问n个邻居[
设置颜色为棕色
摊开
]
]
终止
你可以简单地用一只(半)随机行走的海龟四处走动,并给它行走的补丁上色。然后在某些地方使用扩展代码使其更厚。多亏@Jumboman的建议,我用此代码解决了这个问题。根据世界的大小和特征的首选大小,可以更改设置的编号
to setup
ca
;Generating physical features.
ask n-of 5 patches[ sprout 1[
set pcolor brown]
]
let i 0
while [ i < (max-pycor )][
ask turtles [
fd 1
set pcolor black
ifelse (random 20 <= 1)
[
rt one-of [-90 0 90]
forward 1
]
[
fd 1
set pcolor brown
fd 1
set pcolor brown
]
set pcolor brown
set i i + 1]
]
ask n-of max-pxcor patches with [pcolor = brown][
ask patches in-radius 1 with [pcolor = black][
set pcolor brown]
]
ask turtles [die]
end
设置
ca
;生成物理特征。
问n-5个补丁[萌芽1[
设置颜色[棕色]
]
让我0
而[i<(max pycor)][
问海龟[
fd 1
设置彩色黑色
如果有(随机20)NetLogo附带的模型库中的侵蚀模型可能是一个很好的例子。这个想法是你模拟水侵蚀土地,直到自然形成低洼的河流。它的代码有点挑剔,但可能简化版本适合你的目的?谢谢你,@Jasper!我就用它吧看看这个模型。我已经用另一种方法做了一些改进,你可以在更新的帖子中看到。这是一个好主意。我确实设法使它看起来像我想要的样子。我将改进我的代码,稍后在这里分享。