我目前正在使用 Netlogo3d 对一些简单的 boid 进行建模,但我遇到了圆锥内和半径内功能的问题。
(我正在重新实现来自 Couzin、Krause、James、Ruxton 和 Franks 的文章“动物群中的集体记忆和空间排序”)
我在我的 boids 周围使用三个不同的区域来定义它的行为:一个用于排斥,一个用于吸引,一个用于定向。那些三个是围绕 boid 的球体 这些区域看起来像这样 我在这些区域检测到海龟,如下所示:
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 个列表上使用循环,我正在努力让我的 boids 高效谢谢!
(PS:抱歉英文不好)