Имитация расширения дыма в NetLogo - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь смоделировать распространение дыма внутри области в NetLogo, но у меня есть некоторые трудности. Первоначально я создавал черепах в форме «облаков» для имитации дыма. Я хочу, чтобы каждые случайные интервалы «выводили» «облачную» форму черепахи. Черепахи должны вылупиться рядом с другой «облачной» черепахой, чтобы имитировать распространение дыма. Кроме того, я должен сделать «облака» немного прозрачными, чтобы видеть, попадает ли агент в дым. Большое спасибо!

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

введите описание изображения здесь

1 Ответ

1 голос
/ 15 марта 2019

Существует несколько различных способов расширения дыма, в зависимости от того, сколько места подразумевается под словом «рядом». Допустим, вы хотите, чтобы он находился на расстоянии 0,2 пространственных единиц, тогда вы можете просто сделать, чтобы родительская облачная черепаха сделала что-то вроде hatch 1 [set heading random 360 forward 0.2]. [] Сразу после hatch указывает на то, что детская черепаха запускается сразу после ее создания. Он будет заштрихован с тем же заголовком, что и его родитель, поэтому вам нужно его рандомизировать, а затем переместить на соответствующее расстояние.

...