Java 当我更改缩放的轴时';s连接到平行摄影机时,第一次更改比例时,摄影机显示为跳跃

Java 当我更改缩放的轴时';s连接到平行摄影机时,第一次更改比例时,摄影机显示为跳跃,java,javafx,javafx-8,Java,Javafx,Javafx 8,我对此有一些问题。从本质上讲,我希望能够指定一个比例点,并放大该点。当点为常量时,它会完美工作。但是,当点改变时,我第一次改变比例时,相机会“跳跃”。我还注意到相机的坐标不再代表左上角,但当我回到原始比例时,它确实代表左上角。有没有办法解决这两个问题 public class CameraTest extends Application { ParallelCamera camera = new ParallelCamera(); Scale scale = new Scale(

我对此有一些问题。从本质上讲,我希望能够指定一个比例点,并放大该点。当点为常量时,它会完美工作。但是,当点改变时,我第一次改变比例时,相机会“跳跃”。我还注意到相机的坐标不再代表左上角,但当我回到原始比例时,它确实代表左上角。有没有办法解决这两个问题

public class CameraTest extends Application {
    ParallelCamera camera = new ParallelCamera();
    Scale scale = new Scale();
    Group world = new Group();
    SubScene subScene = new SubScene(world, 480, 720);
    Group root = new Group();
    Scene scene = new Scene(root);

    double orthoScale = 1;

    @Override
    public void start(Stage stage) throws Exception {
        Rectangle floor = new Rectangle(100, 0, 200, 200);
        floor.setTranslateZ(300);
        floor.setFill(Color.ALICEBLUE);
        floor.setRotationAxis(new Point3D(1,0,0));
        floor.setRotate(90);
        world.getChildren().add(floor);

        camera.setTranslateY(100);
        camera.setRotationAxis(Rotate.X_AXIS);
        camera.setRotate(90);
        camera.getTransforms().add(scale);

        subScene.setOnScroll(event -> {
            orthoScale -= event.getDeltaY() / 70;

            scale.setPivotX(event.getX());
            scale.setPivotY(event.getY());
            scale.setX(orthoScale);
            scale.setY(orthoScale);
            scale.setZ(orthoScale);

            System.out.println(orthoScale);
        });

        subScene.setCamera(camera);
        subScene.setFill(Color.LIGHTGREY);
        root.getChildren().add(subScene);
        stage.setScene(scene);
        stage.show();
    }

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

发布了..@user1803551我上传了我刚刚编写的新代码,它再现了我的错误“我还注意到相机的坐标不再代表左上角,但当我回到原始比例时,它代表左上角。”我的左上角始终是(0,0)。您是如何检查的?关于pivot问题,请参阅和。