Похоже, Transform
класс в JavaFX
содержит 3 координаты (x, y и z).Почему Transform в JavaFX выглядит как 3D?
Что произойдет, если я повернусь из плоскости? Будет ли перспектива?
UPDATE
На самом деле объект исчезает, если повернута из плоскости даже на 1 градус. Зачем?
public class TransformTry extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Drawing Operations Test");
Group root = new Group();
Canvas canvas = new Canvas(300, 250);
//canvas.getTransforms().add(new Rotate(1, new Point3D(0, 1, 0))); // square disappears
canvas.getTransforms().add(new Rotate(1, new Point3D(0, 0, 1))); // rotates correctly
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.strokeRect(-50, -50, 100, 100);
root.getChildren().add(canvas);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
UPDATE 2
Я нашел способ использовать перспективную камеру, но она работает странно: она выглядит всегда сверху в центре окна, так что вне плоскости объекта изменяется на окне изменение размера:
public class ShapeTry01 extends Application {
@Override
public void start(Stage stage) throws Exception {
Shape shape = new Rectangle(100,100,50,50);
shape.setStroke(Color.RED);
shape.setFill(null);
Group group = new Group();
group.getChildren().add(shape);
//group.getTransforms().add(new Rotate(10, new Point3D(0, 0, 1)));
group.getTransforms().add(new Rotate(10, new Point3D(0, 1, 0)));
PerspectiveCamera camera = new PerspectiveCamera();
camera.setFieldOfView(45);
Scene scene = new Scene(group);
scene.setCamera(camera);
stage.setTitle("ShapeTry01");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
так что я сделал. теперь ваша очередь: скажите что-то –