2012-02-09 54 views
1

我用three.js制作一个图形,我想用THREE.Line连接节点。 用鼠标移动其中一个节点后,必须重新创建带有节点新坐​​标的边(THREE.Line)。我怎么做到的?Three.js重新定义THREE.Line ..等

我的代码不更新的观点:

function render(){ 

    newEdge.vertices.push(new THREE.Vertex(inNode.position)); 
    newEdge.vertices.push(new THREE.Vertex(outNode.position)); 

    var newLine = new THREE.Line(newEdge, new THREE.LineBasicMaterial({ 
     color: 0xff0000, 
     opacity: 0.9 
    })); 

    scene.objects[edgePos] = newLine; 

    renderer.render(scene, camera); 

} 

非常感谢任何建议!

回答

2

当你直接改变几何图形时,渲染循环将不会拾取它。您需要用newEdge.__dirtyVertices = true;将顶点标记为脏。您可能还需要newEdge.dynamic = true;。看第9节here