Math 计算两个对象在起点处具有设定位置时应在何处相交

Math 计算两个对象在起点处具有设定位置时应在何处相交,math,Math,我想做的是,如果我把两个物体[A和B]放在某个位置,我怎么能找到C应该在哪里?速度不一样。物体A的速度为30米/秒,物体B的速度为20米/秒 在这幅图中,我画出的速度是相同的。不过,它应该能让你大致了解我在做什么 我一直在胡闹,但我甚至不知道从哪里开始 首先,写两个方程式,表示时间t时每个点的x位置 xpos_a(t) = original_xpos_a + xvelocity_a * t xpos_b(t) = original_xpos_b + xvelocity_b * t 当两个点碰撞

我想做的是,如果我把两个物体[A和B]放在某个位置,我怎么能找到C应该在哪里?速度不一样。物体A的速度为30米/秒,物体B的速度为20米/秒

在这幅图中,我画出的速度是相同的。不过,它应该能让你大致了解我在做什么

我一直在胡闹,但我甚至不知道从哪里开始


首先,写两个方程式,表示时间t时每个点的x位置

xpos_a(t) = original_xpos_a + xvelocity_a * t
xpos_b(t) = original_xpos_b + xvelocity_b * t
当两个点碰撞时,它们的x位置将相等。将xpos_a设置为等于xpos_b,并求解t

original_xpos_a + xvelocity_a * t = original_xpos_b + xvelocity_b * t
xvelocity_a * t - xvelocity_b * t = original_xpos_b - original_xpos_a
t * (xvelocity_a - xvelocity_b) = original_xpos_b - original_xpos_a
t = (original_xpos_b - original_xpos_a) / (xvelocity_a - xvelocity_b)
求解t时,有三种可能的结果:

  • 两个点具有相同的原始位置和速度<代码>t=0/0;碰撞可能随时发生
  • 这些点的速度相同,但原始位置不同
    t=[一些非零数字]/0
    ;碰撞永远不会发生
  • 这些点具有不同的速度和不同的原始位置
    t=一些实数
    。如果点发生碰撞,则碰撞只能在此时发生
对Y(和Z,如果问题是三维的)执行相同的步骤。比较每个维度的t值。有四种可能的结果:

  • 任何t值都是“碰撞永远不会发生”。碰撞永远不会发生
  • 两个或两个以上的t值是不相等的实数。碰撞永远不会发生
  • 所有t值均为“碰撞可能随时发生”。这些点在其轨迹上的每一点都在不断碰撞
  • 所有实数的t值都是相等的。届时将发生碰撞。(如果该时间为负,则碰撞发生在您开始模拟之前;您可能希望也可能不希望将其计算为“碰撞永远不会发生”)

如果您最终进入最后一个类别,则计算碰撞时间并将其插入xpos_a、ypos_a、zpos_a函数,以获取碰撞的空间坐标。

首先,编写两个表达式,表示时间t处每个点的x位置

xpos_a(t) = original_xpos_a + xvelocity_a * t
xpos_b(t) = original_xpos_b + xvelocity_b * t
当两个点碰撞时,它们的x位置将相等。将xpos_a设置为等于xpos_b,并求解t

original_xpos_a + xvelocity_a * t = original_xpos_b + xvelocity_b * t
xvelocity_a * t - xvelocity_b * t = original_xpos_b - original_xpos_a
t * (xvelocity_a - xvelocity_b) = original_xpos_b - original_xpos_a
t = (original_xpos_b - original_xpos_a) / (xvelocity_a - xvelocity_b)
求解t时,有三种可能的结果:

  • 两个点具有相同的原始位置和速度<代码>t=0/0;碰撞可能随时发生
  • 这些点的速度相同,但原始位置不同
    t=[一些非零数字]/0
    ;碰撞永远不会发生
  • 这些点具有不同的速度和不同的原始位置
    t=一些实数
    。如果点发生碰撞,则碰撞只能在此时发生
对Y(和Z,如果问题是三维的)执行相同的步骤。比较每个维度的t值。有四种可能的结果:

  • 任何t值都是“碰撞永远不会发生”。碰撞永远不会发生
  • 两个或两个以上的t值是不相等的实数。碰撞永远不会发生
  • 所有t值均为“碰撞可能随时发生”。这些点在其轨迹上的每一点都在不断碰撞
  • 所有实数的t值都是相等的。届时将发生碰撞。(如果该时间为负,则碰撞发生在您开始模拟之前;您可能希望也可能不希望将其计算为“碰撞永远不会发生”)

如果您最终进入最后一个类别,则计算碰撞时间并将其插入xpos_a、ypos_a、zpos_a函数,以获取碰撞的空间坐标。

给定点a和B,以及向量C(a的)和D(B的速度)

注:x1、y1、x2、y2、q1、q2、w1、w2均为常数

编辑:考虑到A&C和b&D不是共线的,请关注作品(如凯文所指出的,如果它们发生碰撞,请找出碰撞的时间)

对它们进行线性化(找不到好的参考):

后面提到的
(x,y)
^

求解
t1
t2

t1 = (x-x1) / q1
t2 = (x-x2) / q2
检查
y
s的t1和t2是否为真

t1 ?= (y-y1) / w1
t2 ?= (y-y2) / w2
如果它们是相同的,那么是的,它们在
(x,y)


注:由于四舍五入误差,除非所有内容都已在手前完全计算,否则极有可能在给定的点A和B以及向量C(A的)和D(B的速度)之间不会发生碰撞

注:x1、y1、x2、y2、q1、q2、w1、w2均为常数

编辑:考虑到A&C和b&D不是共线的,请关注作品(如凯文所指出的,如果它们发生碰撞,请找出碰撞的时间)

对它们进行线性化(找不到好的参考):

后面提到的
(x,y)
^

求解
t1
t2

t1 = (x-x1) / q1
t2 = (x-x2) / q2
检查
y
s的t1和t2是否为真

t1 ?= (y-y1) / w1
t2 ?= (y-y2) / w2
如果它们是相同的,那么是的,它们在
(x,y)


注意:由于四舍五入错误,除非所有内容都已在手前完全计算完毕,否则很可能没有任何内容会发生冲突

您要对这种现象进行编码,还是只对其背后的数学进行编码?如果是这样的话,这应该被贴出来。当你说“相遇”时,你的意思是,两个物体会在哪里碰撞(如果它们发生碰撞),还是只是它们的路径交叉?如果你只是在寻找一个路径交叉点,那么速度并不重要,只有轨迹。@SGM1-我将把它写进代码中later@Kevin-对不起,是的,我的意思是“碰撞”物体a和b实际上是正方形的吗?或者它们是点?因为找到两个正方形碰撞的地方比找到两个点碰撞的地方要复杂得多。你是想对这种现象进行编码,还是仅仅是对其背后的数学进行编码?若有,这