Javascript Three.js-如何在渲染期间更新线连接对象
我有一个3.js画布,上面有独立移动的圆圈。最初,这些圆通过一条线连接,该线与它们的所有位置保持相同的几何图形 当这些圆移动时,我很难更新直线自身的几何体 我正在搜索所有场景的子对象,以找到任何名为“item”的子对象,并更新x&y位置。当我尝试更新线的几何图形时,它要么消失,要么保持静态,如下面的代码所示 如何成功更新每个帧上的线几何体以匹配移动的圆Javascript Three.js-如何在渲染期间更新线连接对象,javascript,three.js,Javascript,Three.js,我有一个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);
}