首页 文章

三个js Object3D旋转

提问于
浏览
0

我'm still new for using three js. When I'm旋转一个相机对象,有一个旋转属性有x,y,z值 . 我想知道对象3D旋转中的x,y,z来自哪里?我知道x,y,z代表物体欧拉角的弧度,但根据链接three.js文件提供:https://en.wikipedia.org/wiki/Euler_anglesα和γ的范围覆盖2π弧度,β的范围覆盖π弧度 . 但是,当我测试它时,所有x,y,z的范围仅覆盖π弧度 . 从最初x = 0,y = 0,z = 0,直接查找,为什么只有x值改变?如果Object3D是一个摄像头,那是否意味着摄像头视图中的中心像素代表x轴?感谢您的帮助 .

1 回答

  • 0

    您可能会更清楚地制定问题并提供代码来重现您的错误 .

    关于为什么当你从(0,0,0)直线向上看时只有x-vaue发生变化的问题是因为x,y和z代表你旋转的轴 . 3js和3D图形中的标准通常是将x作为水平轴,y作为垂直轴,z是"depth"轴 . 直视你会在horiontal x轴上旋转90度,从而改变旋转中的x值 .

    我可以给你链接https://threejs.org/docs/#api/math/Euler

    Three.js提供了两种表示3D旋转的方式:欧拉角和四元数,以及两者之间的转换方法 . 欧拉角受到称为“万向节锁定”的问题,其中某些配置可能失去一定程度的自由度(防止物体绕一个轴旋转) . 因此,对象旋转始终存储在对象的四元数中 . 该库的早期版本包含一个useQuaternion属性,当设置为false时,将导致从Euler角度计算对象的矩阵 . 这种做法已被弃用 - 相反,您应该使用setRotationFromEuler方法,该方法将更新四元数 .

    https://threejs.org/docs/manual/introduction/Matrix-transformations.html

相关问题