在移动的物体之间画一条线

Drawing a line between moving objects

本文关键字:一条 之间 移动      更新时间:2023-09-26

我正试图在两个移动的顶点之间画一条线。顶点的绘图存储在一个名为object的变量中,该变量有一个position,它是一个THREE.Vector3

这样创建行:

var Line = function(scene, source, target){
  var geometry = new THREE.Geometry();
  geometry.dynamic = true;
  geometry.vertices.push(source.object.position);
  geometry.vertices.push(target.object.position);
  geometry.verticesNeedUpdate = true;
  var material = new THREE.LineBasicMaterial({ color: 0x000000 });
  var line = new THREE.Line( geometry, material );
  scene.add(line);
  return line;
};

…,其中源和目标是顶点,顶点通过:

进行更新。
vertex.object.position.add(vertex.velocity);

现在,我将source.object.positiontarget.object.position分配给line.geometry.vertices[0]line.geometry.vertices[1],因为我希望一个与另一个更新。但相反,顶点位置与直线位置相差很大。顶点在它们所在的位置,但是线不连接到顶点。

如何使直线随顶点移动?

在你的动画循环中,你必须设置line.geometry.verticesNeedUpdate = true。因为每次渲染后它都会变成false。jsfiddle示例