在 NetLogo 中模拟烟雾的膨胀
Simulate expansion of smoke in NetLogo
我正在尝试在 NetLogo 中模拟烟雾在某个区域内的扩展,但我遇到了一些困难。最初,我创建了 "cloud" 形状的海龟来模拟烟雾。我希望每个随机间隔 "hatch" 一个 "cloud" 形状的乌龟。海龟必须在另一只 "cloud" 海龟旁边孵化,以模拟烟雾的膨胀。另外,我必须让 "clouds" 有点透明,以便能够看到代理是否进入烟雾。非常感谢!
to create-danger
;; based on a slider, create the number of cloud turtles
create-smoke number-of-dangers
[
;;create smoke only inside a specific area
while[ [pcolor] of patch-here != FLOOR-COLOUR]
[
;;creates random coordinates
rand-xy-co
]
]
end
enter image description here
有几种不同的方法可以扩大烟雾,具体取决于 'next to' 的 space 的含义。假设您希望它与 0.2 个空间单位相距,那么您可以简单地让父云龟执行类似 hatch 1 [set heading random 360 forward 0.2]
的操作。 hatch
后面的 [] 是子海龟创建后立即运行的指令。它将以与其父级相同的航向孵化,因此您需要对其进行随机化,然后让它移动适当的距离。
我正在尝试在 NetLogo 中模拟烟雾在某个区域内的扩展,但我遇到了一些困难。最初,我创建了 "cloud" 形状的海龟来模拟烟雾。我希望每个随机间隔 "hatch" 一个 "cloud" 形状的乌龟。海龟必须在另一只 "cloud" 海龟旁边孵化,以模拟烟雾的膨胀。另外,我必须让 "clouds" 有点透明,以便能够看到代理是否进入烟雾。非常感谢!
to create-danger
;; based on a slider, create the number of cloud turtles
create-smoke number-of-dangers
[
;;create smoke only inside a specific area
while[ [pcolor] of patch-here != FLOOR-COLOUR]
[
;;creates random coordinates
rand-xy-co
]
]
end
enter image description here
有几种不同的方法可以扩大烟雾,具体取决于 'next to' 的 space 的含义。假设您希望它与 0.2 个空间单位相距,那么您可以简单地让父云龟执行类似 hatch 1 [set heading random 360 forward 0.2]
的操作。 hatch
后面的 [] 是子海龟创建后立即运行的指令。它将以与其父级相同的航向孵化,因此您需要对其进行随机化,然后让它移动适当的距离。