在 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 后面的 [] 是子海龟创建后立即运行的指令。它将以与其父级相同的航向孵化,因此您需要对其进行随机化,然后让它移动适当的距离。