首页 > 解决方案 > 我如何在某个视角内与另一个代理(anylogic)进行通信?

问题描述

我正在尝试使用 Anylogic 行人库进行建模,其中代理(A)将与另一个代理(B)通信,前提是另一个代理在 A 的特定视角和弧半径内。传统的通信方式是定义一定的距离基于通信,其中定义的距离在代理周围形成一个球体。但我想模拟代理将无法与不在其视野范围内的其他代理进行通信(如锥形投影和一定距离)。例如,代理不应该能够与他身后的其他人交流。我怎么能做到这一点?

此外,我正在尝试通过代理状态图对单个代理行为(上述行人代理)进行建模。不幸的是,代理状态并没有根据我的模型中的通信而改变。是因为使用了步行图书馆吗?我们可以通过状态图对行人代理的行为进行建模吗?如果有人能回答这些问题,那将是一个很大的帮助。

标签: javaanylogicagent-based-modeling

解决方案


您可以只使用多边形节点或区域并像这样使用它: 眼界

如果您想评估行人或代理是否在视野中,您需要获取该代理的 x 和 y 并执行以下操作:

if(fieldOfVision.contains(x,y))
//communicate with that dude

推荐阅读