三个JS云台锁定旋转
Three JS Gimbal Lock in rotation
看来三个JS中的四元数旋转并没有摆脱云台锁。
重现步骤:
1)打开三个JS编辑器。2) 添加一个圆柱体并将 z 的值设置为 1.57(旋转的中心文本框)。3)现在尝试更改y或x弧度的值(旋转的左或右文本框)。
您会看到 x 和 y 都在执行相同的旋转。任何想法如何避免这种情况?
AFAIK Three JS默认使用四元数,云台锁定仅在使用角时发生。
谢谢!
在代码中:尝试在三个js中修改对象的四元数属性,而不是旋转属性。像这样,您可以确保通过使用四元数来避免万向节锁定。
在编辑器中,您只能使用欧拉角进行编辑,并且由于许多欧拉角表示可能会导致相同的四元数,因此旋转是不明确的;
常规旋转 (mesh.rotation.set) 在观察网格对象时使用欧拉角。这将使用四元数将网格围绕 Y 轴旋转 90 度。
mesh.rotation.setFromQuaternion(some_quaternion, "XYZ", true);
var some_quaternion = new THREE.Quaternion();
some_quaternion.setFromAxisAngle(new THREE.Vector(0,1,0), Math.PI/2);
相关文章:
- 知道为什么我的旋转木马不会自动更改图片吗
- 顺时针旋转Svg元件
- 将鼠标旋转限制为特定的度数
- 旋转后拖动对象
- 禁用旋转木马中的下一个按钮和上一个按钮
- 手动创建旋转活动指示器
- 如何在容器中定位旋转的图像
- 在轴上旋转SVG图像
- 绕z轴旋转时出现iOS陀螺仪错误
- 旋转按钮[HTML][JS]
- 在JS中围绕旋转对象旋转对象
- Threejs-围绕中心旋转对象
- 旋转木马;启用内容安全策略时无法工作
- 如何在使用Kinetic拖动同一对象后,在旋转动画中保持先前的偏移
- 菜单切换时箭头旋转
- 较大引导转盘中的较小引导转盘-较小引导转盘上的旋转功能问题
- 需要关于随机图像旋转的指南
- 根据摄影机视图更改计算对象旋转
- 如何锁定在类固醇中旋转的场景.js - AppGyver移动应用程序
- 三个JS云台锁定旋转