首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX-3D中` `gluLookAt()`的等价物

JavaFX-3D中` `gluLookAt()`的等价物
EN

Stack Overflow用户
提问于 2016-08-30 05:36:52
回答 2查看 414关注 0票数 0

我正在尝试实现一种简单直观的方式来控制相机的方向,在我使用JavaFX 8+ 3D构建的应用程序中。在OpenGL中,有一个名为gluLookAt()的简单函数,它可以轻松地定义从哪个点开始查找以及向哪个目标点查找。

JavaFX-3D中有没有类似的东西?

EN

回答 2

Stack Overflow用户

发布于 2016-08-30 15:08:41

这个来自OpenJDK邮件列表的答案可能会对您有所帮助。lookAt

票数 0
EN

Stack Overflow用户

发布于 2016-08-30 15:37:29

在以下位置找到此代码片段:https://community.oracle.com/thread/3868043

我正在将代码复制到这里,以确保它在将来可用。没有测试它,需要确保它工作正常:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39215592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档