Threejs克隆方法

时间:2015-04-06 15:43:25

标签: javascript three.js

我正在尝试克隆一些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版本中。

1 个答案:

答案 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 );