# Кадр Могу ли я получить положение лазерной точки вместо позиции объекта? - PullRequest
0 голосов
/ 25 декабря 2018

Мне нужно показать расстояние между двумя точками (не двумя объектами), используя контроллер-компонент-курсор, но я только нахожу способ показать расстояние между пересекающимся объектом и камерой.

Есть лилюбой хороший способ решить это?Извините, я новичок Aframe, любой совет будет оценен!

<html>

<head>
<meta name='viewport' content='width=device-width, user-scalable=no,minimum-scale=1.0, maximum-scale=1.0'>
<meta charset="utf-8">
<title>Hello, WebVR</title>

<script src="test/aframe-master.min.js"></script>
<script src="js/jquery-3.2.1.min.js"></script>   
<script src="lib/aframe/aframe-controller-cursor-component.js"></script>

<script AFRAME.registerComponent('cursor-listener', {
  init: function () {

  this.el.addEventListener('click', function (evt) {
  console.log(evt.detail.intersection.distance);

    });
  }
});
</script>

</head>

<body>
<a-scene id="scene"  stats>

<a-entity id="cameraRig"  position="0 28 6">
  <a-entity id="head" camera  look-controls orbit-controls  wasd-controls></a-entity>
 <a-entity id="righthand" vive-controls="hand: right" controller-cursor ></a-entity>
 </a-entity>

<a-entity cursor-listener id="Element_1090" class="FireOne1" gltf-model="url(model1205/1-Fire_one/Element_1090.glb)"
  gps-place="lon:121.434540342353; lat:25.2012249857784; height:33.133450"></a-entity>

  </a-scene>

</body>

</html>

1 Ответ

0 голосов
/ 30 декабря 2018

Я не совсем уверен, что вы подразумеваете под лазерной точкой, но я предполагаю, что это правая сущность.Но по существу, чтобы рассчитать расстояние между двумя объектами, вы можете использовать функцию Vector3 .distanceTo.Смотрите здесь документацию по этой функции: Vector3.distanceTo

По сути, я хотел бы сделать что-то вроде этого: (я не проверял код, он просто показывает направление)

let rh = document.querySelector('#righthand');
this.el.addEventListener('click', function (evt) {
  let distance = evt.currentTarget.object3D.position.distanceTo(rh.object3D.position);
});
...