我计划在仿真中使用两种类型的代理。
对于一种座席类型,我计划通过该座席类型的“启动时”操作中调用的setXYZ()方法来显式设置位置。
我计划使用第二种座席类型,如以下所述使用一种预定义的布局模式(随机或环形):
问题是,以下两种代码放置在主要代理类型的“启动时”操作中,这两种类型的代理之间并没有区别(并将所有代理放置在一个圆圈中):
setLayoutType(Agent.LAYOUT_RING);
applyLayout();
我应该以某种方式修改上面的代码(正如我已经尝试过的那样)还是有另一种方法?
答案 0 :(得分:0)
我认为该空间中存在的所有座席的布局类型必须相同...不过...您可以执行以下操作:
//first you apply the ring layout to everything
setLayoutType(Agent.LAYOUT_RING);
applyLayout();
//then you define the type of agent you don't want to follow the ring layout separately
for(int i=0;i<100;i++){//assuming you will create 100 agents initially
MyAgent p=add_myAgents();//you need to create your agents after the ring layout is applied though..
p.setXY(uniform(0,500), uniform(0,500));//assuming your agents are in a 500x500 square in main
}
我不知道是否有更好的方法...但这就是我所知道的