根据摄影机视图更改计算对象旋转
Calculate object rotation from camera view change
我需要计算对象在三维空间中的旋转。我正在尝试使用threejs,但一直没能弄清楚。我需要的是:(旋转X,旋转Y,旋转Z),以度为单位。
我有一个开始的相机视图:(位置[x,y,z],目标[x,y-z],向上[x,y/z])
以及结束摄影机视图:(位置[x,y,z],目标[x,y-z],向上[x,y/z])
如有任何帮助,我们将不胜感激。
我现在不能测试这个,我也没有使用three.js的经验,但逻辑应该是这样的:
var m1 = new THREE.Matrix4();
m1.lookAt(pos1, tar1, up1);
var q1 = new THREE.Quaternion();
q1.setFromRotationMatrix(m1);
var m2 = new THREE.Matrix4();
m2.lookAt(pos2, tar2, up2);
var q2 = new THREE.Quaternion();
q2.setFromRotationMatrix(m2);
q1.inverse();
var q3 = q2.multiply(q1);
var a = new THREE.Euler();
a.setFromQuaternion(q3, 'XYZ');
这里的方法只是获得表示对象旋转的两个四元数。这也可以使用.tquaternion()直接从对象中获取自:
QStart * QTransition = QResult
导致
QTransition = QResult * inverse(QStart)
相关文章:
- 如何计算对象文字中的键
- 插件SDK中的动态或计算对象创建
- 根据摄影机视图更改计算对象旋转
- 在Knockoutjs中设置计算对象的observableArray的更好方法
- 计算对象键值并将其转换为百分比(100%)
- 使用下划线.js计算对象属性
- 创建根据时间参数计算对象状态的函数
- 在条件中计算对象 false
- 计算对象数组中的差异,包括对对象的更改
- 如何在 JavaScript 中计算对象中的子项
- 创建两个函数来计算对象属性/方法
- I'm无法计算对象的长度
- 计算对象函数JavaScript中另一个对象属性的长度
- 计算对象的值之和's基于另一个对象的属性'动态生成的属性
- Javascript函数计算对象属性的嵌套数组,可能使用reduce/map
- 计算对象的长度
- Javascript在对象中计算对象的数量
- 如何根据其他属性计算对象文字中的对象属性
- 从按钮onclick->提示符中重新计算对象构造函数值
- 试图计算对象具有的属性/属性的数量.Javascript