我有两个物体都在同一个平面上移动。我知道他们在每个时间实例的位置矢量和方向矢量。我想计算以下内容:
我很长时间没有进入数学推导。但是,我可以使用惯性参考框架,变换和旋转手动计算。但是,编写这一切似乎是一项繁忙的工作。我希望,有人已经有了更好的想法或者已经对它们进行了编码。任何帮助或代码参考(最好将在matlab中)将不胜感激。
谢谢。
答案 0 :(得分:0)
让我们看看这是否有帮助:
1.两个物体之间的距离只是它们位置矢量差异的大小。我确信mathlab有办法做d = | p1 - p2 |其中p1和p2是位置向量,条形是指我们计算得到的向量的大小。
对于无法访问矢量库的任何人,这与以下内容相同: d * d =(p1_x - p2_x)^ 2 +(p1_y - p2_y)^ 2
然后,检查d< 5
2.现在,我们需要知道两个粒子在该范围内有多长。我们已经知道如何确定物体之间的距离,所以现在我们需要引入速度以便能够用t(时间)表达这样的距离。它是这样的:
p(t) = t . v + p_init
其中p(t)是时间量t之后的位置向量。 t是标量值,v是速度矢量。 p_init是t = 0时身体的位置向量。知道了这一点,我们可以用向量算术来表达条件:
对于范围r(标量):
|p1(t) - p2(t)| < r
使用p(t)的公式:
| ( t . v1 + p1_init ) - ( t . v2 + p2_init ) | < r
编辑:我决定更好地解释最后一部分:
您可以重新安排并获得:
| t (v1 - v2 ) + ( p1_init - p2_init ) | < r
这里唯一的变量是t。我建议计算v3 = v1 - v2和p3_init = p1_init - p2_init ...然后使用pitagoras得到结果向量的大小并解决t的不等式