Three.js 设备方向控制:限制或禁用 XY 旋转
Three.js Device Orientation Controls: Limit or disable XY rotations
我正在使用 DeviceOrientationControls 附加和旋转 Three.js
中的对象
默认情况下,这些控件将在所有三个 XYZ 轴上旋转对象。
有什么方法可以禁用 X 轴和 Y 轴的旋转,使对象只响应 Z 轴的旋转吗?
希望已经足够清楚了,如果您需要示例,请告诉我。谢谢
对于任何感兴趣的人,我能够在不使用 Three DeviceOrientationControls 库的情况下实现这一点。
您可以只为 'deviceorientation' 添加事件侦听器并将伽马旋转输入对象旋转,如下所示:
window.addEventListener('deviceorientation', function(e) {
var gammaRotation = e.gamma ? e.gamma * (Math.PI / 180) : 0;
bottleGroup.rotation.y = gammaRotation;
});
您可以通过在 setObjectQuaternion( scope.object.quaternion, alpha, beta, gamma, orient ) 后面添加以下行来替换 DeviceOrientationControls js;在 this.update 函数中:
this.object.rotation.x = 0;
this.object.rotation.z = 0;
然后你只在 y 方向上有相机运动。
我正在使用 DeviceOrientationControls 附加和旋转 Three.js
中的对象默认情况下,这些控件将在所有三个 XYZ 轴上旋转对象。
有什么方法可以禁用 X 轴和 Y 轴的旋转,使对象只响应 Z 轴的旋转吗?
希望已经足够清楚了,如果您需要示例,请告诉我。谢谢
对于任何感兴趣的人,我能够在不使用 Three DeviceOrientationControls 库的情况下实现这一点。
您可以只为 'deviceorientation' 添加事件侦听器并将伽马旋转输入对象旋转,如下所示:
window.addEventListener('deviceorientation', function(e) {
var gammaRotation = e.gamma ? e.gamma * (Math.PI / 180) : 0;
bottleGroup.rotation.y = gammaRotation;
});
您可以通过在 setObjectQuaternion( scope.object.quaternion, alpha, beta, gamma, orient ) 后面添加以下行来替换 DeviceOrientationControls js;在 this.update 函数中:
this.object.rotation.x = 0;
this.object.rotation.z = 0;
然后你只在 y 方向上有相机运动。