private void translate(Point current, Point destination, Point speed) {
    if (current.getX() > destination.getX()) {
      current.setX(current.getX() - speed.getX());
      if (current.getX() < destination.getX()) {
        current.setX(destination.getX());
      }
    } else {
      current.setX(current.getX() + speed.getX());
      if (current.getX() > destination.getX()) {
        current.setX(destination.getX());
      }
    }

    if (current.getY() > destination.getY()) {
      current.setX(current.getY() - speed.getY());
      if (current.getY() < destination.getY()) {
        current.setX(destination.getY());
      }
    } else {
      current.setX(current.getY() + speed.getY());
      if (current.getY() > destination.getY()) {
        current.setY(destination.getY());
      }
    }
  }