我正试图让代理人通过导航节点移动。这是我的设置:
这就是我想要做的事情:
每个代理移动到最近的导航节点,然后再次开始搜索过程。
当最近的导航节点是目标节点时,代理会停止。然后,代理人到了!
我的问题:
我使用以下方式设置代理的轮换:
double r = Math.atan2( targetNode.getY() - this.getY(),
targetNode.getX() - this.getX());
this.setRotation(r);
我不确定如何在Anylogic中编程视觉范围。有任何想法吗?
答案 0 :(得分:1)
我在博士期间做了类似的事情。
使用视图区域的初始大小和形状向您的代理添加多边形节点对象myViewArea
。
然后,您可以让代理检查他是否“看到”导航节点,使用myViewArea.contains()
方法并针对模型中的所有导航节点进行检查。
如果他找不到任何内容,您可以通过编程方式更改myViewArea
(请参阅Java API)
希望这有帮助。