1

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 の問題が原因で不正確になっているようです)。

4

1 に答える 1