Javascript 两个运动物体的交点

Javascript 两个运动物体的交点,javascript,math,Javascript,Math,我试图使用这里提供的答案: 但是我有一些问题 这个角度是什么 var angle = Math.PI + dir - target.dir var angle = Math.PI + dir - target.dir 我在想,在余弦定律中应该使用的角度已经是“alpha或target.dir”。。那条线在干什么?在这两个步骤中: var x = target.x + target.vel * time * Math.cos(target.dir); var y = target.y +

我试图使用这里提供的答案:

但是我有一些问题

这个角度是什么

var angle = Math.PI + dir - target.dir
var angle = Math.PI + dir - target.dir
我在想,在余弦定律中应该使用的角度已经是“alpha或target.dir”。。那条线在干什么?在这两个步骤中:

 var x = target.x + target.vel * time * Math.cos(target.dir); 
 var y = target.y + target.vel * time * Math.sin(target.dir);  
代码不应该使用x轴或y轴与目标速度矢量之间的角度吗?为什么作者在这里使用alpha

var x = target.x + target.vel * time * Math.cos(target.dir);  
var y = target.y + target.vel * time * Math.sin(target.dir);  

这个角度是什么

var angle = Math.PI + dir - target.dir
var angle = Math.PI + dir - target.dir
名为angle的变量实际上是angle alpha。因为方向dir是从追踪器到目标的方向,我们需要它来进行这个计算,所以我们在减去target.dir之前先加π

也许使用angle这个词作为变量名有点模糊;我会把它改成alpha,我在图片中用这个角度的名字

代码不应该使用x轴或y轴与目标速度矢量之间的角度吗?为什么作者在这里使用alpha

var x = target.x + target.vel * time * Math.cos(target.dir);  
var y = target.y + target.vel * time * Math.sin(target.dir);  

我们确实在使用target.dir,即目标的方向,即x轴和目标向量之间的角度,来计算拦截点的坐标,而不是角度α

很好,你把它作为一个问题发布了!我打电话给原作者,也许他会给我们一些见解…@Jonaswillms谢谢你让我知道。今天晚些时候我会看一看。谢谢你的回复。。首先,我想,正如我猜的许多读者一样,给定的target.dir已经是alpha了,如图所示。我认为您可能需要声明target.dir是x轴和目标速度向量之间的角度,并且还需要将其包含在钙化图中。。(我已经附上了一个图表供建议编辑。)其次,根据这些图表,我看到alpha正好等于dir-target.dir。。我再次检查了余弦定律,它只使用了alpha,我无法理解为什么你想通过添加pi来改变它?@isso11,如原始答案中所述,方向使用JavaScript约定,0=right,pi/2=up,因此所有方向都以与X轴的角度给出。计算
dir
的方式是从追逐器到目标的方向,但是对于余弦规则,我们从目标到追逐器,所以我们添加Pi来切换方向。