绘制非连续代理集的属性

时间:2015-02-14 14:20:00

标签: netlogo

如何在netlogo中绘制代理集的属性,每个属性都有不同的笔。 考虑还有其他类型的代理,并且要绘制的代理集的编号在开始时并不都是连续的分发/创建。

1 个答案:

答案 0 :(得分:2)

我认为你的问题确实是,“如何将代理集中的每个代理与笔相关联?”我们称之为代理集myset

  1. 如果在模拟过程中代理集是静态的(没有代理创建或死亡),那么您可以引入全局mylst并将其设置为代理列表:set mylst [self] of myset。然后,您可以将笔与列表中的成员相关联。 (例如,您也可以列出笔,以便mylst中的代理索引及mypens中的笔索引相同。)

  2. 您可以使用table并将每个笔名映射到代理。 (我可能最喜欢这个解决方案。)

  3. 如果这些代理构成品种,您可以为品种提供您设置为pen名称的pen属性。 (我不喜欢这个解决方案的唯一原因是它仅仅为了GUI目的而干涉代理的属性,我试图避免这种情况。)

  4. 修改

    由于您正在创建和销毁代理商,但是您希望每个人都控制自己的笔,因此您会有一些奇怪的情况可能会导致大量的簿记。我将建议解决方案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命令。)