如何在AnyLogic中根据填充颜色统计状态图中的智能体?
AnyLogic统计同颜色智能体数量的解决方法
你用
item.statechart.equals(Color.red)的问题在于:statechart是智能体的状态图对象,并非存储填充颜色的属性,自然无法匹配颜色值。另外注意AnyLogic里颜色常量是大写形式,比如Color.RED而非Color.red。正确实现方式:
- 直接通过智能体的可视化属性统计:如果智能体都在某个集合(比如
population)中,使用以下代码统计红色智能体数量:count(population, agent -> agent.getFillColor().equals(Color.RED)) - 更稳定的自定义变量方式:给智能体添加一个
Color类型的自定义变量(比如currentFillColor),每次调用setFillColor()时同步更新该变量:
统计时直接读取这个变量:setFillColor(Color.RED); currentFillColor = Color.RED;count(population, agent -> agent.currentFillColor.equals(Color.RED)) - 验证颜色设置:确保状态切换时
setFillColor()命令确实被执行,没有被其他逻辑覆盖或跳过。
- 直接通过智能体的可视化属性统计:如果智能体都在某个集合(比如
内容的提问来源于stack exchange,提问作者tanaka zhou
相关产品推荐
相关产品推荐

