【问题标题】:Keeping agent in the same location when using gotoPopulation使用 gotoPopulation 时将代理保持在同一位置
【发布时间】:2022-01-11 12:26:39
【问题描述】:

我在另一个代理(船)内有一组代理(容器)。这是必需的,以便容器将随船移动。一旦船靠岸,我希望集装箱从 'ship' 中的人口变为 'main' 中的人口。当我使用以下内容时

gotoPopulation(main.containers_main);

要将容器代理发送到 main 中的一组容器,容器将移动到 main 环境中的 0,0。

以上代码放在容器代理中。

有没有办法改变代理人的人口但将其保持在同一位置?

谢谢

【问题讨论】:

    标签: simulation anylogic


    【解决方案1】:

    我不这么认为。至于代理,没有“相同的位置”,它们总是相对于某物(以前相对于Ship,现在相对于main)。

    但您可以通过以下方式手动将它们定位在相同(明显的)位置:

    1. main 上获取容器的相对位置,同时仍在Ship 中:getX() + ship.getX()(对于 Y,假设船舶嵌入 Main 中,容器嵌入 Ship 中)--> 短暂存储为 double myPosX
    2. 像上面那样移动到主要的新人口
    3. 相对于 Main 设置“新”位置:setX(myPosX)

    这听起来很麻烦,但很有意义,一旦您了解嵌入式代理的位置总是相对于它们的父级。删除父级,您需要考虑调整相对位置以使它们保持在(看似)“相同”位置

    【讨论】:

    • 谢谢本杰明,这很有道理。
    猜你喜欢
    • 1970-01-01
    • 2016-07-15
    • 2014-05-25
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 2019-02-07
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多