是否有可能从点的相对运动推断出轴承

时间:2016-09-05 09:40:44

标签: math

在2d空间中给出一组初始坐标:

A = 0,0
B = 0,20
C = 10,10

然后在一个间隔后移动一组点,即

A = 0,0
B = 0,20
C = 5,5

如何计算B点相对于A点左移或右移的程度。

上下文: 假设三个人站在一个领域,它的黑暗,他们无法看到对方,没有互联网,没有GPS,但他们持有的设备知道节点之间的距离,我们可以计算基本三角形。如果我在A点,想要到达B点,我会去哪个方向?

1 个答案:

答案 0 :(得分:0)

使用点或叉积计算两个三角形内的位置,计算差异。

或者如果你想要有关于三角形内部点的堆栈溢出的答案 可以找到here

float sign (fPoint p1, fPoint p2, fPoint p3)
{
    return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
}

bool PointInTriangle (fPoint pt, fPoint v1, fPoint v2, fPoint v3)
{
    bool b1, b2, b3;

    b1 = sign(pt, v1, v2) < 0.0f;
    b2 = sign(pt, v2, v3) < 0.0f;
    b3 = sign(pt, v3, v1) < 0.0f;

    return ((b1 == b2) && (b2 == b3));
}