THREE.js:OrbitControl使用透视摄影机在z轴上平移
我正在使用这个类,并试图用panFront替换panUp函数。我的目标是沿z轴移动相机 我做了以下更改,但似乎不起作用:THREE.js:OrbitControl使用透视摄影机在z轴上平移,three.js,Three.js,我正在使用这个类,并试图用panFront替换panUp函数。我的目标是沿z轴移动相机 我做了以下更改,但似乎不起作用: var panFront = function() { var v = new THREE.Vector3(); return function panFront( distance, objectMatrix ) { v.setFromMatrixColumn( objectMatrix, 2 ); // get Z column of
var panFront = function() {
var v = new THREE.Vector3();
return function panFront( distance, objectMatrix ) {
v.setFromMatrixColumn( objectMatrix, 2 ); // get Z column of objectMatrix
v.multiplyScalar( distance );
panOffset.add( v );
};
}();
解决方案:
已编辑
设置v.y=0代码>仅在xz轴上固定平底锅
var panFront = function() {
let v = new THREE.Vector3();
return function panFront( distance, objectMatrix ) {
v.setFromMatrixColumn( objectMatrix, 2 ); // get Z column of objectMatrix
v.y = 0;
v.multiplyScalar( -distance );
panOffset.add( v );
};
}();
我将x和y分量设置为0。解决方案:
已编辑
设置v.y=0代码>仅在xz轴上固定平底锅
var panFront = function() {
let v = new THREE.Vector3();
return function panFront( distance, objectMatrix ) {
v.setFromMatrixColumn( objectMatrix, 2 ); // get Z column of objectMatrix
v.y = 0;
v.multiplyScalar( -distance );
panOffset.add( v );
};
}();
我将x和y分量设置为0。相关的是,似乎同样的问题,我找到了对我有效的解决方案,谢谢!相关的是,这似乎是同样的问题,我已经找到了对我有效的解决方案,无论如何,谢谢!闭包的目的是避免实例化必须进行垃圾收集的新Vector3
实例。每个调用创建两个实例。现在,v
应该标准化为单位长度,因为它是一个方向。使用我上面链接的答案中的数学来获得一致的结果。闭包的目的是避免实例化必须进行垃圾收集的新Vector3
实例。每个调用创建两个实例。现在,v
应该标准化为单位长度,因为它是一个方向。使用我上面链接的答案中的数学来获得一致的结果。