我有三个点(A,B,C)表示在2D空间中移动的物体。对于每个节点,我知道它的位置和速度矢量。所有三个物体都朝同一方向移动。
我想知道点C(x3,y3)是否近似于由点A(x1,y1)和B(x2,y2)形成的线的“正”延伸。也就是说,我想知道点C是否在点B的“前面”(即“A-> B-> C”而不是“C-> A-> B”)。
我知道检查点A,B,C是否共线会让我看到所有三个点位于同一条线上,但是,我无法弄清楚C点是否接近线的正延伸。 / p>
任何建议都将受到高度赞赏。
答案 0 :(得分:1)
您可以计算差异向量AB和BC的标量积。如果这是积极的,那么C就是你在B前面所说的。但是,它可能会向左或向右移动。
标量积计算为
(b1-a1)x(c1-b1) + (b2-a2)x(c2-b2).
当A =(a1,a2),B =(b1,b2),C =(c1,c2) - 两个矢量之间的角度的cos乘以矢量的长度,cos是正的对于小于90度的角度。