我正在尝试克隆一些Vector3,但克隆方法所做的副本是由x,y和z值中的所有零组成的。一个例子:
本声明的输出
console.log(this.geometries[j].vertices[i].multiplyScalar(1));
是
LabeledVertex {x: -0.5, y: 0.5, z: 2.6745e-12, label: "U", constructor: function…}
(LabeledVertex只是THREE.Vector3的扩展)
如果我克隆最后一个
position = this.geometries[j].vertices[i].clone().multiplyScalar(1);
内部位置的内容是:THREE.Vector3 {x: 0, y: 0, z: 0, constructor: function, set: function…}.
正如您所看到的,是由全零组成的。这发生在Threejs的r71版本中。
答案 0 :(得分:3)
总是制作新的矢量,如果你想用它计算,或者克隆它并用新的语法用它计算:
var v2 = v1.clone();
v2 = v2.multiplyScalar( 2 );
//or
v2 = new THREE.Vector3(v1.x,v1.y,v1.z).multiplyScalar( 2 );
//or from gaitat comment
v2 = v1.clone().multiplyScalar( 2 );