В настоящее время я моделирую несколько простых boids с использованием Netlogo3d, и у меня возникла проблема с функциями in-cone и in-radius.
(я заново реализую статью «Коллективная память иПространственная сортировка в группах животных (Кузин, Краузе, Джеймс, Ракстон и Фрэнкс)
Я использую три различных области вокруг моих боксов для определения его поведения: одну для отталкивания, одну для притяжения и одну для ориентации. Три из них - это сфера вокруг буда Эти области выглядят так Я обнаруживаю черепах в этой области вот так:
to find-flockmates-repulsion ;; turtle procedure
set flockmatesRepulsion other turtles in-cone (visionRepulsion * scale) fov
end
to find-flockmates-orientation ;; turtle procedure
set flockmatesOrientation other turtles in-cone ((visionOrientation + visionRepulsion) * scale) fov
end
to find-flockmates-attraction ;; turtle procedure a modifier pour enlever les turtles dans le radius visionOrientation
set flockmatesAttraction other turtles in-cone ((visionAttraction + visionOrientation + visionRepulsion) * scale) fov
end
Но эти три области перекрываются, и я не хочуони перекрываются.
Есть ли способ уменьшить выбор функции внутри конуса и радиуса, например:
set flockmatesAttraction other turtles [ (in-cone ((visionAttraction + visionOrientation + visionRepulsion) * scale) fov) and not (in-cone ((visionOrientation + visionRepulsion) * scale) fov) ]
И, если возможно, без цикла в 2 списках,Я пытаюсь сделать мои боиды эффективными. Спасибо!
(PS: извините за ломаный английский)