Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JavaFX Perspective Camera LookAt Method

00a29a48-89e4-41e5-9793-295867d55940Nov 19 2015 — edited Nov 19 2015

I was looking for a code sample for a lookat method to support pointing the PersepectiveCamera to a specified Point3d. I found this ---> () question, which is unanswered but for some reason is archived. (Which makes no sense in my opinion. Why archive a thread that has no answer. That's wonky)

Anyway, I wanted to share what I came up with. I used this site for reference.  Determining Yaw, Pitch and Roll

    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()));

    }

Hope someone finds it useful

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 17 2015
Added on Nov 19 2015
0 comments
1,217 views