提问者:小点点

Anylogic如何计算行人之间的距离


我使用行人库(使用ps源、ping Goto和ps汇),想要模拟人行道环境。这个模型的目标是得到行人之间的距离小于1m的数据。所以,我尝试计算行人之间的距离。在Any逻辑中,可以通过使用getX()、getY和getId(可以每秒计算)来收集行人的信息。但是我不知道如何选择行人代理并计算它们之间的距离。我的意思是,如果有10个行人(id:1, 2, 3...),如何每秒钟获得1和2、1和3、2和3之间的距离?


共1个答案

匿名用户

创建一个事件,每秒钟循环一次所有行人。确保所有行人都实际添加到PedSource中的自定义代理群体中(使其更容易循环)。

在这种情况下,使用嵌套的for循环:

for (Pedestrian currPed : myPedPopulation) {
    for (Pedestrian currOtherPed : myPedPopulation) {
        if (currPed.equals(currOtherPed) break; // not needed
        double distance = currPed.distanceTo(currOtherPed);
        // do with this what you want :)
    }
}