编程语言
首页 > 编程语言> > javascript-Threejs克隆方法

javascript-Threejs克隆方法

作者:互联网

我正在尝试克隆一些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的扩展)

如果我克隆这最后一个
位置= this.geometries [j] .vertices [i] .clone().multiplyScalar(1);
内部位置的内容是:THREE.Vector3 {x:0,y:0,z:0,构造函数:函数,设置:函数…}.
如您所见,由全零组成.在Threejs的r71版本中会发生这种情况.

解决方法:

如果要使用计算,请始终制作新向量,或者将其克隆为拳头,然后使用新语法进行计算:

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

标签:three-js,javascript
来源: https://codeday.me/bug/20191120/2044598.html