Javascript 在移动对象之间绘制直线

Javascript 在移动对象之间绘制直线,javascript,three.js,Javascript,Three.js,我试图在两个移动的顶点之间画一条线。顶点的图形存储在一个名为object的变量中,该变量具有一个位置,该位置是一个3.Vector3 该行是这样创建的: var Line = function(scene, source, target){ var geometry = new THREE.Geometry(); geometry.dynamic = true; geometry.vertices.push(source.object.position); geometry.ve

我试图在两个移动的顶点之间画一条线。顶点的图形存储在一个名为
object
的变量中,该变量具有一个
位置
,该位置是一个
3.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.position
target.object.position
分配给
line.geometry.vertices[0]
line.geometry.vertices[1]
,因为我希望一个顶点与另一个一起更新。但是,顶点位置与直线位置相差很大。顶点在它们所在的位置,但直线不连接到顶点


如何使线随顶点移动?

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

不幸的是,这没有奏效。我确实有line.verticesNeedUpdate=true;但是队伍仍然到处都是。我还避免为位置向量分配任何可能留下旧引用的内容。
.verticesNeedUpdate
THREE.Geometry()
的属性,而不是
THREE.Line()
对象的属性。您看过我的JSFIDLE示例了吗?对不起,是的。这就是我的意思:line.geometry.verticesNeedUpdate。我正在研究您的JSFIDLE示例。它就像一个符咒,我想看看是否可以在我的代码中重新创建它。