我使用步行库(使用ped源、ped Goto和ped接收器),并希望模拟人行道环境。该模型的目标是获得行人之间距离小于1m的数据。所以,我试着计算行人之间的距离。在Anylogic中,可以使用getX()、getY和getId (可以每秒计算)来收集行人信息。但是我不知道如何选择行人智能体,以及如何计算它们之间的距离。我的意思是,如果有10个行人(id: 1,2,3...),如何得到1和2,1和3,2和3 ...every秒之间的距离?
发布于 2021-11-22 08:45:04
创建一个每秒循环通过所有行人的事件。确保所有行人都被实际添加到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 :)
}
}https://stackoverflow.com/questions/70062658
复制相似问题