Math 如何确定一个点是否近似于两个其他点之间的直线的延伸?

Math 如何确定一个点是否近似于两个其他点之间的直线的延伸?,math,geometry,Math,Geometry,我有三个点(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是否近似于直线的正延伸 任何建议都将不胜感激。您可以计算差分向量AB和BC的标量积。如果这是肯定的,那么

我有三个点(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是否近似于直线的正延伸


任何建议都将不胜感激。

您可以计算差分向量AB和BC的标量积。如果这是肯定的,那么C就是你所说的“在B前面”。尽管它可能离左边或右边很远

标量积的计算公式如下:

(b1-a1)x(c1-b1) + (b2-a2)x(c2-b2). 

当A=(a1,a2),B=(b1,b2),C=(c1,c2)-它是两个向量之间的角度乘以向量长度的cos,对于小于90度的角度,cos是正的。

我错过了这个问题的编程方面试着在这里提问:好的,我应该仔细阅读。我收回我的评论。