我尝试使用RoadModel
基于 .dot 文件的方法计算到交货地点的距离。但是,使用计算出的距离Point.distance(currPos, destPos)
给出的结果似乎不合适。我将其与MoveProgress
( RoadModel.moveTo(...)
) 的距离进行了比较,发现点距离大约是 100 倍以上。
例如,当使用rinsim-example-4.1.1.jar
带有以下Taxi
类实现的 Taxi 示例时
class Taxi extends Vehicle implements SimulatorUser {
private RandomGenerator rng;
Taxi(Point startPosition, int capacity) {
super(VehicleDTO.builder().capacity(capacity).startPosition(startPosition)
.speed(1000).build());
}
@Override
public void setSimulator(SimulatorAPI api) {
rng = api.getRandomGenerator();
}
@Override
protected void tickImpl(TimeLapse time) {
final RoadModel rm = getRoadModel();
Point start = rm.getPosition(this);
MoveProgress mp;
if (rm.getDestination(this) == null) {
mp = rm.moveTo(this, rm.getRandomPosition(rng), time);
}
if (rm.getPosition(this).equals(rm.getDestination(this)))
mp = rm.moveTo(this, rm.getRandomPosition(rng), time);
else
mp = rm.moveTo(this, rm.getDestination(this), time);
Point after = rm.getPosition(this);
System.out.println("Travelled distance");
System.out.println(mp.distance());
System.out.println("Straight line distance");
System.out.println(Point.distance(start, after));
}
那么行进距离约为 0.277,而计算出的直线距离约为 27.7。是否有原因导致 100 倍的差异或其他方式以相同的度量获得两点之间的距离MoveProgress
?