anylogic - 如何在 AnyLogic 中的经典基于代理的建模中使用代理定位 Canvas
问题描述
我是 AnyLogic 的新手,并试图弄清楚应该如何在那里设置基于代理的模型。有一个著名的流行病模型,我正在尝试复制它。大多数经典 ABM 教程都处理旧的 GUI 设置。
例如,在 8.5+ 版本(现在是实际版本)中,该Environment
对象(用于定位布局)已被弃用。
现在我看到新对象Canvas
用于在页面上放置带有代理的布局。但是源代码文件的结构对我来说有点不清楚,我没有找到相关描述如何Canvas
为此目的设置。(此外,我不确定这是执行此任务的推荐方式。)
问题:我很想学习在页面上使用代理任意定位区域的正确方法。下面你可能会看到我默认得到的。
解决方案
经过一番尝试,“简约”功能如下。
应该创建一些具有任意名称的
Person
人口(人口名称people
自动添加)。下面的结构
Project
是要复制的(任意名称用黄色标出)。
注释:在添加一个名为mapCanvas
one的 Canvas 后,添加setCanvasCellColor
具有以下主体的函数:
mapCanvas.fillCircle(person.getX(), person.getY(), 3, color);
很明显,前两个参数代表给定点的坐标,然后是它的大小(即 3)和颜色。不要忘记添加正文中使用的两个参数,即person
asPerson
和 color
as Color
。
- 从名为的状态图的Entry Action
state
调用刚刚创建的函数。为了演示,我在这里放了黑色;chartreuse
在 Epidemic 示例中改为使用常量。
main.setCanvasCellColor(this, black);
- 最后,您可以运行模型得到下图。
注意
如果不愿意使用 Canvas,请使用Main - Presentation - xxx_presentation并单击Draw agent with offset to this position
复选框。
推荐阅读
- demandware - Salesforce Commerce Cloud - 批量添加搜索子请求 OCAPI
- vue.js - Vue custom directive does not register
- c# - 使用 OSM 和 Itinero 计算驾驶时间
- excel - 使用 pandas 删除 Excel 中的标题行
- variables - C如何引用自动变量。
- awk - 清理fasta文件头
- laravel - 与同一模型的雄辩的一对一关系
- highcharts - Highchart阈值问题
- asp.net-mvc - 在用户离开页面并返回时在会话中保留数据
- neo4j - neo4j apoc.trigger.add 与属性更新