Sphere sp = new Sphere(10); sp.setMaterial(new PhongMaterial(Color.BLUE)); sp.setDrawMode(DrawMode.FILL); sp.setTranslateZ(100);
camera = new PerspectiveCamera(true); camera.getTransforms().addAll(cameraTranslate, cameraRotateX, cameraRotateY, cameraRotateZ); camera.setFarClip(1_000_000);
root.getChildren().addAll(testBox, sp, camera);
SubScene subScene = new SubScene(root, screenWidth, screenHeight); subScene.setFill(Color.BLACK); subScene.setCamera(camera);
return new Group(subScene); }
@Override public void start(Stage stage) throws Exception { StackPane stackPane = new StackPane(createContent()); Canvas canvas = new Canvas(screenWidth, screenHeight); gc = canvas.getGraphicsContext2D(); stackPane.getChildren().add(canvas); Scene scene = new Scene(stackPane);
switch (event.getCode()) { case RIGHT: cameraRotateY.setAngle(cameraRotateY.getAngle() + 5); break; case LEFT: cameraRotateY.setAngle(cameraRotateY.getAngle() - 5); break; case UP: cameraRotateX.setAngle(cameraRotateX.getAngle() + 5); break; case DOWN: cameraRotateX.setAngle(cameraRotateX.getAngle() - 5); break; case SLASH: cameraRotateZ.setAngle(cameraRotateZ.getAngle()-5); break; case BACK_SLASH: cameraRotateZ.setAngle(cameraRotateZ.getAngle()+5); break; case PAGE_UP: p = new Point3D(0, 0, 10); p = cameraTranslate.transform(p); cameraTranslate.setX(p.getX()); cameraTranslate.setY(p.getY()); cameraTranslate.setZ(p.getZ()); break; case PAGE_DOWN: p = new Point3D(0, 0, -10); p = cameraTranslate.transform(p); cameraTranslate.setX(p.getX()); cameraTranslate.setY(p.getY()); cameraTranslate.setZ(p.getZ()); break; case D: p = new Point3D(10, 0, 0); cameraPivot = cameraPivot.add(p); p = cameraTranslate.transform(p); cameraTranslate.setX(p.getX()); cameraTranslate.setY(p.getY()); cameraTranslate.setZ(p.getZ()); break; case A: p = new Point3D(-10, 0, 0); cameraPivot = cameraPivot.add(p); p = cameraTranslate.transform(p); cameraTranslate.setX(p.getX()); cameraTranslate.setY(p.getY()); cameraTranslate.setZ(p.getZ()); break; }