微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不同节点内跟踪 ped 的位置? - AnyLogic

如何解决如何在不同节点内跟踪 ped 的位置? - AnyLogic

是否可以通过跟踪代理在某个节点内部或外部的位置来修改它的变量?

我在行人内部有一个字符串变量 position,我想根据代理是在外部、内部绿色还是红色节点(例如 "Green""Red" 或 {{1} }.).

我挖掘了以下代码,它可以很好地跟踪代理是否在给定节点内,但我不知道如何使用它,因此它实际上修改了代理内的变量。

"None"

my simple model with green and red node

new agent - "pedestrian" with string variable

非常感谢您的帮助, 彼得

解决方法

好吧,您需要定期检查 Pedestrian 代理并相应地调整变量。

最好设置一个循环事件执行:

if (main.nodeGreen.contains(getX(),getY()) {
    position = "Green"
} else if // ... do for the other types

旁注:此处使用字符串非常容易出错且不可扩展。也许在您的 Pedestrian 代理类型中创建一个函数,例如 f_getCurrentNode,使用上面的(调整后的)代码返回一个 Node。如果 ped 不在节点中,则使其返回 null。现在,您可以动态检查每个代理的位置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。