Javascript Three.js-如何在渲染期间更新线连接对象

Javascript Three.js-如何在渲染期间更新线连接对象,javascript,three.js,Javascript,Three.js,我有一个3.js画布,上面有独立移动的圆圈。最初,这些圆通过一条线连接,该线与它们的所有位置保持相同的几何图形 当这些圆移动时,我很难更新直线自身的几何体 我正在搜索所有场景的子对象,以找到任何名为“item”的子对象,并更新x&y位置。当我尝试更新线的几何图形时,它要么消失,要么保持静态,如下面的代码所示 如何成功更新每个帧上的线几何体以匹配移动的圆 线几何体的点已参照到圆的位置,因此无需在场景的每次渲染中为它们指定新值 如果将该行作为全局变量,并添加另一个全局变量以将圆存储在数组中,则可以简

我有一个3.js画布,上面有独立移动的圆圈。最初,这些圆通过一条线连接,该线与它们的所有位置保持相同的几何图形

当这些圆移动时,我很难更新直线自身的几何体

我正在搜索所有场景的子对象,以找到任何名为“item”的子对象,并更新x&y位置。当我尝试更新线的几何图形时,它要么消失,要么保持静态,如下面的代码所示

如何成功更新每个帧上的线几何体以匹配移动的圆


线几何体的点已参照到圆的位置,因此无需在场景的每次渲染中为它们指定新值

如果将该行作为全局变量,并添加另一个全局变量以将圆存储在数组中,则可以简化操作

var camera, scene, renderer, line, circles = [];
然后您可以将您的物品推入阵列:

circles.push(item);
scene.add(item); 
因此,渲染函数将如下所示:

function render() {
  circles.forEach(circle => {
    circle.position.x += circle.xspeed;
    circle.position.y += circle.yspeed;

    if (circle.position.x > window.innerWidth / 2 || circle.position.x < -window.innerWidth / 2) {
      circle.xspeed *= -1;
    }
    if (circle.position.y > window.innerWidth / 2 || circle.position.y < -window.innerWidth / 2) {
      circle.yspeed *= -1;
    }
  });
  line.geometry.verticesNeedUpdate = true;

  renderer.render(scene, camera);
}
function render() {
  circles.forEach(circle => {
    circle.position.x += circle.xspeed;
    circle.position.y += circle.yspeed;

    if (circle.position.x > window.innerWidth / 2 || circle.position.x < -window.innerWidth / 2) {
      circle.xspeed *= -1;
    }
    if (circle.position.y > window.innerWidth / 2 || circle.position.y < -window.innerWidth / 2) {
      circle.yspeed *= -1;
    }
  });
  line.geometry.verticesNeedUpdate = true;

  renderer.render(scene, camera);
}