我想乘以:
vectorDiff = placementPosition.sub(viewerPosition);
按 10,以便在移动"模型"时:
moveModel(vectorDiff, "GPS");
它的移动量是目前的 10 倍。我该怎么做;我是JavaScript的新手,任何帮助将不胜感激。以下是上述代码块所在的代码块:
if ( viewerPosition !== null && placementPosition!== null) {
vectorDiff = placementPosition.sub(viewerPosition);
rotationSum = new THREE.Vector3().addVectors(placementRotation, viewerRotation)
//rotationSum.setY(rotationSum.y+180);
moveModel(vectorDiff, "GPS");
//rotateModel(rotationSum, "GPS");
三个.js向量是可变的;当你调用 v1.sub(v2)
时,v1
包含以下结果:
var v1 = new THREE.Vector3(2,3,4);
var v2 = new THREE.Vector3(1,0,3);
v1.sub(v2);
console.log(v1.toArray())
// [1, 3, 1]
因此,"从一个值中减去另一个值的结果"只是"第一个向量"。您需要一种方法将该向量乘以单个数字或标量。
该方法multiplyScalar
:
v1.multiplyScalar(10);
console.log(v1.toArray());
// [4, 12, 4]
JSBin
Vector3 的三个.js文档