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