Pau*_*eno 0 javascript three.js
找不到我想念的...。
调试示例代码后,我发现了以下几行,并将其转储到控制台以了解问题所在:
var intPosition = new THREE.Vector3( Math.floor(result.point.x), 0, Math.floor(result.point.z) );
console.log(intPosition);
brush.position = intPosition.clone().add(new THREE.Vector3(0.5, 0.5, 0.5) );
console.log(brush.position);
Run Code Online (Sandbox Code Playgroud)
但是........输出如下(从firebug控制台):
Object { x=0, y=0, z=10, more... }
Object { x=0, y=0, z=0, more... }
Run Code Online (Sandbox Code Playgroud)
.add ( v ) this
Run Code Online (Sandbox Code Playgroud)
向此向量加v。
和这里:
add: function ( v1, v2 ) {
this.x = v1.x + v2.x;
this.y = v1.y + v2.y;
this.z = v1.z + v2.z;
return this;
},
Run Code Online (Sandbox Code Playgroud)
怎么了?它是js上的整型浮点数法吗?
编辑说明:
我不知道它是否相关,但是此问题发生在我的Three.js当前版本(修订版71)中,在较旧版本(r60或更低版本)上可以正常工作。
您必须使用Vector3类的.set()方法。
var brushPosition = intPosition.clone().add(new THREE.Vector3(0.5, 0.5, 0.5) );
brush.position.set(brushPosition.x, brushPosition.y, brushPosition.z);
Run Code Online (Sandbox Code Playgroud)
您也许还可以使用Vector3类的复制功能。
brush.position.copy(intPosition.clone().add(new THREE.Vector3(0.5, 0.5, 0.5));
Run Code Online (Sandbox Code Playgroud)
编辑:原因是object3D的position属性是不可写的。可能无法使用赋值运算符设置它。
归档时间: |
|
查看次数: |
5998 次 |
最近记录: |