Anylogic消息动画
Anylogic Message Animation
我正在尝试强制人口代理在 AnyLogic 中交换消息。我希望每次代理 A 向 B 发送消息时,消息的图标都会从 A 移动到 B。我该如何实现?
基本上有两种移动代理的方法:
- 跳转到特工B:立即出现在特工B附近
- 以一定速度移动到代理A
每一个代码分别如下:
agentA.jumpTo( agentB.getXYZ() );
agentA.moveTo( agentB );
其中 agentA
和 agentB
指的是您可能会根据您在模型中的位置调用不同的代理。
Emile 发送给您的代码用于将代理人从一个地方转移到另一个地方。我知道您不想移动您的两个代理,而是只想将一个“消息图标”从一个移动到另一个。为此,您可以创建一个代理(我们称它为代理“消息”),创建它并在代理 A 中找到它,然后告诉它(如 Emile 所说)移动到代理 B:messageAB.moveTo(agentB.getPosition ());这样你就会得到你想要的效果。
您还可以:
- 使用计时器从一个地方移动到另一个地方,或者
- 使用事件并根据您在该事件上的剩余时间动态更改图标的位置
- 使用 source/delay/sink 与第 2 点相同
我正在尝试强制人口代理在 AnyLogic 中交换消息。我希望每次代理 A 向 B 发送消息时,消息的图标都会从 A 移动到 B。我该如何实现?
基本上有两种移动代理的方法:
- 跳转到特工B:立即出现在特工B附近
- 以一定速度移动到代理A
每一个代码分别如下:
agentA.jumpTo( agentB.getXYZ() );
agentA.moveTo( agentB );
其中 agentA
和 agentB
指的是您可能会根据您在模型中的位置调用不同的代理。
Emile 发送给您的代码用于将代理人从一个地方转移到另一个地方。我知道您不想移动您的两个代理,而是只想将一个“消息图标”从一个移动到另一个。为此,您可以创建一个代理(我们称它为代理“消息”),创建它并在代理 A 中找到它,然后告诉它(如 Emile 所说)移动到代理 B:messageAB.moveTo(agentB.getPosition ());这样你就会得到你想要的效果。 您还可以:
- 使用计时器从一个地方移动到另一个地方,或者
- 使用事件并根据您在该事件上的剩余时间动态更改图标的位置
- 使用 source/delay/sink 与第 2 点相同