如何在netlogo中绘制代理集的属性,每个属性都有不同的笔。 考虑还有其他类型的代理,并且要绘制的代理集的编号在开始时并不都是连续的分发/创建。
答案 0 :(得分:2)
我认为你的问题确实是,“如何将代理集中的每个代理与笔相关联?”我们称之为代理集myset
。
如果在模拟过程中代理集是静态的(没有代理创建或死亡),那么您可以引入全局mylst
并将其设置为代理列表:set mylst [self] of myset
。然后,您可以将笔与列表中的成员相关联。 (例如,您也可以列出笔,以便mylst
中的代理索引及mypens
中的笔索引相同。)
您可以使用table
并将每个笔名映射到代理。 (我可能最喜欢这个解决方案。)
如果这些代理构成品种,您可以为品种提供您设置为pen
名称的pen
属性。 (我不喜欢这个解决方案的唯一原因是它仅仅为了GUI目的而干涉代理的属性,我试图避免这种情况。)
修改强>
由于您正在创建和销毁代理商,但是您希望每个人都控制自己的笔,因此您会有一些奇怪的情况可能会导致大量的簿记。我将建议解决方案3:向您的代理添加pen
属性。现在,每次创建代理时,都要包含以下内容作为其初始化的一部分:
set pen (word "pen" who)
set-current-plot "myplot"
create-temporary-plot-pen pen
plot attribute
此处"myplot"
是您为此使用的地图的名称,attribute
是您正在绘制的属性的名称。然后每个勾选你可以拥有这些代理
set-current-plot "myplot"
set-current-plot-pen pen
plot attribute
如果您想通过笔颜色来区分代理,您将需要做一些额外的工作。 (有关线索,请参阅scale-color
命令。)