【问题标题】:Intersection of two Moving Objects两个运动物体的交集
【发布时间】:2019-09-02 17:16:29
【问题描述】:

我正在尝试使用此处提供的答案:Intersection of two Moving Objects with Latitude/Longitude Coordinates

但我有一些问题..

这个角度是多少:

var angle = Math.PI + dir - target.dir

我在想应该在余弦定律中使用的角度已经是“alpha or 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?

【问题讨论】:

  • 很高兴您将其发布为问题!我ping了原作者,也许他会给我们一些见解......
  • @JonasWilms 感谢您告诉我。今天晚些时候我会看看它。

标签: javascript math


【解决方案1】:

这个角度是多少:

var angle = Math.PI + dir - target.dir

名为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轴与目标向量的夹角,来计算截取点的坐标,而不是角度α。

【讨论】:

  • 感谢您的回复。首先,我想,正如我猜想的许多读者一样,给定的 target.dir 已经是 alpha,如图所示。我认为您可能需要声明 target.dir 是 x 轴和目标速度矢量之间的角度,并将其包含在图中以进行钙化。(我附上了一个图表以进行建议的编辑。)其次,基于在图表上,我看到 alpha 等于 dir - target.dir .. 我再次检查了余弦定律,它只使用 alpha,我无法通过添加 pi 来了解为什么你想要它?
  • @isso11 如原始答案中所述,方向使用 JavaScript 约定,0 = 右,Pi/2 = 上,因此所有方向都以与 X 轴的角度给出。 dir的计算方式,是从追逐者到目标的方向,但是对于余弦规则,我们是从目标看追逐者,所以我们加上Pi来切换方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多