Масштабирование полигонов в javafx для их родителей - PullRequest
0 голосов
/ 23 апреля 2019

Предположим, у вас есть многоугольник в контейнере, и вы хотите масштабировать его до контейнера при создании этого контейнера.Вы создаете ширину и высоту для этого контейнера, и у вас уже есть определенный многоугольник, размещенный в нем.Теперь вы хотите, чтобы этот многоугольник всегда имел ту же ширину и высоту, что и контейнер, в котором он находится.

1 Ответ

0 голосов
/ 23 апреля 2019

Вот как это решить:

private void makePolyScale(int height, int width) {

    Scale scale = new Scale ();
    scale.setX(width/BASE_WIDTH);
    scale.setY(height/BASE_HEIGHT);

    scale.setPivotX(this.body.getBoundsInParent().getCenterX());
    scale.setPivotY(this.body.getBoundsInParent().getCenterY());

    body.getTransforms().addAll(scale);
}

Базовая ширина и базовая высота - это высота и ширина вашего полигона. Вы можете вычислить это из вашего двойного массива точек (просто найдите minmax x / y и вычтите min из максимумов соответствующих x и y)

ширина и высота - это ширина и высота вашего родительского контейнера.

...