ArrowHelper
下の先端がターゲット球に直撃しないのはなぜですか?それは少しそれを逃します。以下の方向計算は十分に正確ではありませんか?
var geometry = new THREE.SphereGeometry(1, 16, 16);
var material = new THREE.MeshNormalMaterial();
var mesh = new THREE.Mesh(geometry, material);
mesh.type = "node";
mesh.position.set(30, -87, -11);
scene.add(mesh);
geometry = new THREE.SphereGeometry(1, 16, 16);
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Mesh(geometry, material);
mesh.type = "node";
mesh.position.set(28, 44, -14);
scene.add(mesh);
var sourcePos = new THREE.Vector3(30, -87, -11);
var targetPos = new THREE.Vector3(28, 44, -14);
var direction = new THREE.Vector3().subVectors(targetPos, sourcePos);
var arrow = new THREE.ArrowHelper(direction.clone().normalize(), sourcePos, direction.length(), 0xff0000);
scene.add(arrow);
これは、この質問に対する直接のフォローアップの質問です ( を使用しないより優れたアルゴリズムがある可能性があるため、開いたままArrowHelper
にしましたが、ここで説明されている ArrowHelper の問題が原因で不正確になっているようです)。