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问题,请参阅和。