【发布时间】:2017-07-05 23:56:54
【问题描述】:
红点正以 400 的速度向绿点方向移动。
在黄点到达该位置所需的时间后,我想将黄点移动到红点的坐标。
换句话说,我希望黄点在红点到达绿点坐标之前拦截红点,使它们重叠。
我正在使用这个函数来获取点之间的距离:
function getDistance(a, b) {
return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));
}
这是一个考虑到速度的标准化距离:
function normalizeDistance(distance, speed) {
return distance / speed;
}
但我不知道如何获取我需要的信息。
我在逻辑上知道 3 个点的坐标,并且我知道红点将指向绿色点的坐标。
绿点是静态的。
我该怎么办?
编辑:
为了澄清,这里有同样问题的更简单的例子:
【问题讨论】:
-
这很难。在您的示例中,黄点到达红点所需的时间越长,红点将行进越远,并且由于它模糊地朝向黄点,黄点到达那里所需的时间就越少。考虑三个点完全对齐(黄色、绿色、红色)的场景,会发生什么?
-
如果 3 个点完全对齐,我认为应该更容易吧?无需考虑轨迹。 i.imgur.com/pAvbJFk.png
-
我建议你先在math.stackexchange.com 上问这个问题,如果那里有一个好的解决方案,请提供关于如何以匹配方式执行此操作的其他数据的赏金...
-
谢谢你,我会做的!
-
我在这里为任何感兴趣的人发布了这个问题:math.stackexchange.com/questions/2347345/…
标签: javascript