我正在尝试计算两个对象(矩形和圆形)之间的距离。在圆停止的地方,矩形沿圆移动(使用路径转换)。
这是为了计算从行驶中的车辆到车道上的障碍物的距离。
private double calculateDistanceBetweenAccidentAndVehicle()
{
// Point2D v = new Point2D(vehicle.getX(), vehicle.getY());
// Point2D be = new Point2D(blockingObject.getCenterX(),
blockingObject.getCenterY());
// v.distan
double vX = getGlobalX(vehicle);
double vY = getGlobalY(vehicle);
double bX = getGlobalX(blockingObject);
double bY = getGlobalY(blockingObject);
Point2D v = new Point2D(vX, vY);
Point2D b = new Point2D(bX, bY);
return v.distance(b);
}
private double getGlobalX(Node node) {
if (node == null) {
return 0.0;
}
double parentGlobalX = getGlobalX(node.getParent());
return node.getLayoutX() - parentGlobalX;
}
private double getGlobalY(Node node) {
if (node == null) {
return 0.0;
}
double parentGlobalY = getGlobalY(node.getParent());
return parentGlobalY - node.getLayoutY();
}
我得到的结果没有意义。我得到1000,当两个对象碰撞时应该达到0,我得到的最小值是375。