我想把照相机放在代理型AGV运输机上。由于有多个AGV运输机,我不能简单地把它放在代理上,因为它会产生错误。所以我试着根据AGV代理的繁忙参数随机选择一个AGV。但是当我尝试这样做的时候,它给出了下一个错误: AGV不能被解析为变量。
AGV是我的模型中的代理类型,我创建了一个作为代理类型的运输队AGV (我也不知道这是否是正确的方法)。
我尝试用以下方式对其进行编码:


我不知道我做错了什么,但我也找不到任何简单的例子,把相机放在AGV或容器或其他什么,只有非常复杂的例子或例子,只有一个代理人(例如,飞机)。
后来又补充说:


提前谢谢你,阿伦
发布于 2021-11-29 11:47:08
在您的代码中,需要为randomWhere函数提供一个填充

将新生成的运输机添加到人口中,只需将其设置在运输队中即可。

跟踪任何代理的最简单的选择是在代理内部有一个照相机。

然后,在您的代码中,您只需将3DWindow摄像机设置为所选AGV的摄像机(将true添加到最后一个参数,以便3D窗口跟踪摄像机位置)

还请检查此模型中的代码,其中AnyLogic详细实现了以下摄像机逻辑
https://cloud.anylogic.com/model/3291f1d6-d388-4d18-9060-29fad93d651d?mode=SETTINGS
同样在AnyLogic内部的示例模型中
发布于 2021-11-29 11:44:01
把相机放进你的AGV代理类型。请确保您的TransporterFleet正在向agents (myPop)的自定义群体中添加新的运输工具,请参见下面的内容:

在您的模型中,您现在可以使用my3DWindow.setCamera(((AGV)randomFrom(myPop)).myCamera);更改相机。
https://stackoverflow.com/questions/70153360
复制相似问题