如何在 AnyLogic 中基于代理的经典建模中使用代理定位 Canvas
How to position Canvas with agents in classical Agent-Based Modeling in AnyLogic
我是 AnyLogic 的新手,正在尝试弄清楚应该如何在那里设置基于代理的模型。有一个著名的 Epidemic model,我正在尝试复制它。大多数关于经典 ABM 的教程都涉及旧的 GUI 设置。
例如,在现在实际的 8.5+ 版本中,Environment
对象(用于定位布局)已被弃用。
现在我看到新对象 Canvas
用于在页面上放置带有代理的布局。但是源代码文件的结构对我来说有点不清楚,我也没有找到相关的描述如何设置 Canvas
。 (此外,我不确定这是执行此任务的推荐方式。)
问题:我很想学习在页面上任意定位代理区域的正确方法。下面你可能会看到我默认得到的。
经过一番尝试,'minimalistic' 功能如下。
应该创建一些任意名称的种群 Person
(种群名称 people
自动添加)。
转载Project
的以下结构(任意名称用黄色标出)
注释:在添加一个名为 mapCanvas
的 Canvas 后,添加函数 setCanvasCellColor
并具有以下主体:
mapCanvas.fillCircle(person.getX(), person.getY(), 3, color);
很明显,前两个参数代表给定点的坐标,然后是它的大小(即3)和颜色。不要忘记添加正文中使用的两个参数,即 person
作为 Person
和 color
作为 Color
.
- 从名为
state
的状态图的 Entry Action 调用刚刚创建的函数。为了演示,我在这里放了黑色; chartreuse
常量在 Epidemic 示例中被使用。
main.setCanvasCellColor(this, black);
- 最后,您可能运行模型得到如下图
备注
如果不想打扰 Canvas,请使用 Main - Presentation - xxx_presentation 并单击 Draw agent with offset to this position
复选框。
我是 AnyLogic 的新手,正在尝试弄清楚应该如何在那里设置基于代理的模型。有一个著名的 Epidemic model,我正在尝试复制它。大多数关于经典 ABM 的教程都涉及旧的 GUI 设置。
例如,在现在实际的 8.5+ 版本中,Environment
对象(用于定位布局)已被弃用。
现在我看到新对象 Canvas
用于在页面上放置带有代理的布局。但是源代码文件的结构对我来说有点不清楚,我也没有找到相关的描述如何设置 Canvas
。 (此外,我不确定这是执行此任务的推荐方式。)
问题:我很想学习在页面上任意定位代理区域的正确方法。下面你可能会看到我默认得到的。
经过一番尝试,'minimalistic' 功能如下。
应该创建一些任意名称的种群
Person
(种群名称people
自动添加)。转载
Project
的以下结构(任意名称用黄色标出)
注释:在添加一个名为 mapCanvas
的 Canvas 后,添加函数 setCanvasCellColor
并具有以下主体:
mapCanvas.fillCircle(person.getX(), person.getY(), 3, color);
很明显,前两个参数代表给定点的坐标,然后是它的大小(即3)和颜色。不要忘记添加正文中使用的两个参数,即 person
作为 Person
和 color
作为 Color
.
- 从名为
state
的状态图的 Entry Action 调用刚刚创建的函数。为了演示,我在这里放了黑色;chartreuse
常量在 Epidemic 示例中被使用。
main.setCanvasCellColor(this, black);
- 最后,您可能运行模型得到如下图
备注
如果不想打扰 Canvas,请使用 Main - Presentation - xxx_presentation 并单击 Draw agent with offset to this position
复选框。