2016-08-29 9 views
0

JavaFX 8 + 3Dを使って作成したアプリケーションで、カメラの方向を制御する簡単で直感的な方法を実装しようとしています。 OpenGLには、gluLookAt()と呼ばれる単純な関数があり、どの点から見えるか、どの目的点を見るかを簡単に定義することができます。JavaFX-3Dの `gluLookAt()`に相当します。

JavaFX-3Dに相当するものはありますか?

答えて

0

この回答はOpenJDKメーリングリストから得られる場合があります。ここでは、このコードスニペットが見つかり lookAt

+0

ありがとうございます!有望です – SomethingSomething

0

https://community.oracle.com/thread/3868043

を私はそれが将来的に利用できることを確認するためにここにするためにコードをコピーしています。テストしませんでした。正常に動作することを確認する必要があります。

public void lookAt(Point3D cameraPosition, Point3D lookAtPos) {   
    //Create direction vector 
    Point3D camDirection = lookAtPos.subtract(cameraPosition.getX(), cameraPosition.getY(), cameraPosition.getZ()); 
    camDirection = camDirection.normalize(); 

    double xRotation = Math.toDegrees(Math.asin(-camDirection.getY())); 
    double yRotation = Math.toDegrees(Math.atan2(camDirection.getX(), camDirection.getZ())); 

    Rotate rx = new Rotate(xRotation, cameraPosition.getX(), cameraPosition.getY(), cameraPosition.getZ(), Rotate.X_AXIS); 
    Rotate ry = new Rotate(yRotation, cameraPosition.getX(), cameraPosition.getY(), cameraPosition.getZ(), Rotate.Y_AXIS); 

    cam.getTransforms().addAll(ry, rx, 
      new Translate( 
        cameraPosition.getX(), 
        cameraPosition.getY(), 
        cameraPosition.getZ())); 
} 
+0

他のパラメータも考慮に入れた別の実装があります:https://github.com/lancelet/orbitnav/blob/master/src/main/java/org/orbitnav/example/LookAt.java – SomethingSomething

関連する問題