JSFiddle - React, Tailwind, and code Playground

by Michael Prosser

HTML

<script src="https://cdn.babylonjs.com/babylon.js"></script>

JavaScript

var predictObject = function(position, rotation, d) {

  var r = rotation;
  var p = new BABYLON.Vector3(position.x, position.y, position.z);
  console.log("d",d);
  
  p.z += Math.cos(r.y) * d;
  p.x += Math.sin(r.y) * d;
  p.y += Math.tan(r.x) * d;
  
  // get distance. between
  
  var dis = distance(p, position)/d;
  
  d = d/dis;
  
  console.log("d",d);
  
  position.z += Math.cos(r.y) * d;
  position.x += Math.sin(r.y) * d;
  position.y += Math.tan(r.x) * d;

  return new BABYLON.Vector3(position.x, position.y, position.z);

}

var distance = function(player1, player2) {

  return Math.sqrt(Math.pow(player2.x - player1.x, 2) + Math.pow(player2.y - player1.y, 2) + Math.pow(player2.z - player1.z, 2));

}

console.log(predictObject({
  x: 0,
  y: 0,
  z: 0
}, {
  x: (Math.PI/42)+0.0000000000001,
  y: 0,
  z: 0
}, 10));