三JS动态换线

ThreeJS Dynamic Line Change

本文关键字:动态 JS      更新时间:2023-09-26

在ThreeJS中,我有一个旋转的立方体,它由一堆粒子组成。粒子是称为粒子的粒子阵列的一部分,它们也是称为组的组的一部分,该组围绕x,y和z上的原点旋转。我想知道如何用一条线动态连接两个粒子。我目前必须尝试执行此操作的代码如下,它不起作用。

        var geometry2 = new THREE.Geometry();
            linemat = new THREE.LineBasicMaterial({
                color: 0xffffff
            });
            geometry2.vertices.push(particles[4].position);
            geometry2.vertices.push(particles[1000].position);  
            geometry2.update;           
            line = new THREE.Line(geometry2, linemat);
            scene.add(line);          

这是我的渲染循环内部。但是,它只在粒子所在的位置绘制一条线。当立方体旋转时,线只是停留在空间中,而不接触点。它也不会更新。

任何帮助将不胜感激。谢谢

基于您当前的想法,我会在渲染循环之外创建线条,然后在渲染循环内更新其几何形状。请注意,要告诉Geometry其顶点已更新,您需要将verticesNeedUpdate标志设置为 true (r61)。在上面的代码中,你有一个语句geometry2.update它不做任何事情(它不调用方法或更新值,并且 update 属性在任何情况下都不存在)。

或者,您可以将线添加到正在旋转的组中,它应该随之旋转。