Как найти координаты прямоугольника после поворота формы javafx - PullRequest
0 голосов
/ 13 ноября 2018

Я рисую прямоугольник с координатами (х = 100, у = 100, ширина = 200, высота = 100). Затем я поворачиваю форму этого прямоугольника вокруг центра.

this.rotation.addListener((obs, old, fresh) -> {
    Rotate rotate = new Rotate();
    rotate.setAngle((double) fresh - (double) old);
    rotate.setPivotX(x.getValue().doubleValue() + (width.getValue().doubleValue() / 2));
    rotate.setPivotY(y.getValue().doubleValue() + (height.getValue().doubleValue() / 2));
    shape.getTransforms().addAll(rotate);
});

Как теперь узнать координаты фигуры?

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете использовать метод localToParent для преобразования точки из системы координат Rectangle в систему координат родителя.

Point2D topLeftInParent = shape.localToParent(shape.getX(), shape.getY());

Если вам просто нужен диапазон x / yв родительском элементе, где отображается Rectangle, вы также можете использовать getBoundsInParent:

Bounds parentBounds = shape.getBoundsInParent();

Кстати: я не рекомендую добавлять новое преобразование при каждом изменении.Вместо этого я рекомендую настроить существующее вращение:

Rotate rotate = new Rotate(0, shape.getX() + shape.getWidth()/2, shape.getX() + shape.getHeight()/2);
shape.getTransforms().add(rotate);
rotate.angleProperty().bind(this.rotation);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...