Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 3.js。应用EdgeHelper后更改网格位置_Javascript_Three.js_Mesh - Fatal编程技术网

Javascript 3.js。应用EdgeHelper后更改网格位置

Javascript 3.js。应用EdgeHelper后更改网格位置,javascript,three.js,mesh,Javascript,Three.js,Mesh,在应用EdgeHelper后,我尝试旋转或更改网格的位置,但不起作用-网格保持在相同的位置上。(没有EdgeHelper,效果很好)。我做错了什么 var mesh = new THREE.Mesh( geometry, material ); var edges = new THREE.EdgesHelper( mesh, 0xcf0000 ); edges.position.z = 100; edges.position.x = 100; scene.add( edges );

在应用EdgeHelper后,我尝试旋转或更改网格的位置,但不起作用-网格保持在相同的位置上。(没有EdgeHelper,效果很好)。我做错了什么

var mesh = new THREE.Mesh( geometry, material );
var edges = new THREE.EdgesHelper( mesh, 0xcf0000 );

edges.position.z = 100;
edges.position.x = 100;

scene.add( edges );            

查看THREE.EdgeHelper的源代码,matrixAutoUpdate似乎设置为false。这样可以防止每次更新时计算位置和旋转


将EdgeHelper的matrixAutoUpdate设置为true应该可以做到这一点,但在设置新位置或旋转后调用.updateMatrix()函数似乎更干净。

我遇到了相同的问题,正如我建议添加的:

        egh.matrixAutoUpdate = true;
边和立方体遵循我使用的坐标:

        var cube = new THREE.Mesh( new THREE.CubeGeometry(width,height,depth), 
                        new THREE.MeshBasicMaterial( {color: 0x00AA00, side:THREE.DoubleSide, opacity: 0.5, transparent: true } ) );
        scene.add(cube);

        var egh = new THREE.EdgesHelper(cube, 0x777777);
        egh.material.linewidth = 1;
        egh.position.x = cube.position.x;
        egh.position.y = cube.position.y;
        egh.position.z = cube.position.z;
        egh.matrixAutoUpdate = true; // this helped
        scene.add(egh);

你能通过编辑这个JSFIDLE来展示一个真实的例子吗?我明白为什么是个错误。我必须更改网格的位置,但不能更改边。