JavaFx Эквивалентно графике context.rotate () для узлов - PullRequest
0 голосов
/ 13 апреля 2019

Если я рисую на холсте, я могу вращать систему координат графического контекста, не поворачивая ничего, что уже нарисовано на соответствующем холсте, то же самое с переводами.

Есть ли что-нибудь подобное в группе? Если я просто поверну и переведу это «дети», я не получу нужного эффекта, потому что переводы ориентируются на не повернутую систему группы.

Если нет, то есть ли что-нибудь похожее на 3D-холст с такой функциональностью?

1 Ответ

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

Как указал Slaw, я искал классы в пакете javafx.scene.transform.

Вот пример: допустим, я хочу строку, начинающуюся с (200, 200) сдлина 200 в направлении 60 градусов от оси х.Это было бы не так сложно обойтись без пакета transform, но это послужит лишь простым примером.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Line;
import javafx.scene.transform.Affine;
import javafx.stage.Stage;

public class Example extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    public void start(Stage stage) throws Exception {
        Group group = new Group();
        Scene scene = new Scene(group, 400, 400);
        stage.setScene(scene);

        // Does not work as intended
        Line line1 = new Line(0,0, 200, 0);
        line1.setTranslateX(200);
        line1.setTranslateY(200);
        line1.setRotate(60);

        // Does work as intended.
        Line line2 = new Line(0, 0, 200, 0);
        Affine affine = new Affine();
        affine.appendTranslation(200, 200);
        affine.appendRotation(60);
        line2.getTransforms().add(affine);

        group.getChildren().addAll(line1, line2);

        stage.show();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...