/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package camera; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Camera; import javafx.scene.Group; import javafx.scene.PerspectiveCamera; import javafx.scene.Scene; import javafx.scene.input.KeyEvent; import javafx.scene.shape.Sphere; import javafx.stage.Stage; /** * * @author tester */ public class CameraTranslationAndRotationTestApp extends Application { Group camGroup; @Override public void start(Stage stage) throws Exception { Group root = new Group(); camGroup = new Group(); Group sphereGroup = new Group(); Sphere sphere = new Sphere(100); sphereGroup.getChildren().add(sphere); sphereGroup.setTranslateX(250); sphereGroup.setTranslateY(250); Camera cam = new PerspectiveCamera(); camGroup.getChildren().add(cam); Scene scene = new Scene(root, 500, 500); root.getChildren().addAll(camGroup, sphereGroup); scene.setOnKeyTyped(new EventHandler() { @Override public void handle(KeyEvent t) { switch (t.getCharacter()) { case "a": camGroup.setTranslateX(camGroup.getTranslateX() - 10); break; case "s": camGroup.setTranslateY(camGroup.getTranslateY() + 10); break; case "d": camGroup.setTranslateX(camGroup.getTranslateX() + 10); break; case "w": camGroup.setTranslateY(camGroup.getTranslateY() - 10); break; case "z": camGroup.setRotate(camGroup.getRotate() + 10); break; case "x": camGroup.setRotate(camGroup.getRotate() - 10); } System.out.println(camGroup.getTranslateX()); System.out.println(camGroup.getTranslateY()); System.out.println(camGroup.getRotate()); } }); scene.setCamera(cam); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } }