一个关于相机垂直旋转的问题

问题描述 投票:0回答:1

在模型中,相机绕Z轴水平旋转(THREE.Vector3(0, 0, 1))。垂直旋转时,如何确定旋转矢量? 我想计算旋转后的'newTarget',但总是失败。


var camera = viewer.navigation.getCamera();
var horizontalRadians = (horizontalAngle * Math.PI) / 180;
var verticalRadians = (verticalAngle * Math.PI) / 180;

// Compute the vector from position to target
var direction = new THREE.Vector3().subVectors(camera.target.clone(), camera.position.clone()).normalize();

// vertical
var verticalQuaternion = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(x, y, z), verticalRadians);
direction.applyQuaternion(verticalQuaternion);

// horizontal
var horizontalQuaternion = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 0, 1), horizontalRadians);
direction.applyQuaternion(horizontalQuaternion);

var newTarget = new THREE.Vector3().addVectors(camera.position.clone(), direction);
console.log(newTarget)

我该如何修改这段代码或者有更好的方法吗?

autodesk-forge autodesk
1个回答
0
投票

您可以获取观看者的初始状态和新状态,并获得各自的眼睛和目标对象之间的差异。

© www.soinside.com 2019 - 2024. All rights reserved.