Math 快速获取点和线的相对位置的方法

Math 快速获取点和线的相对位置的方法,math,geometry,Math,Geometry,我有一条直线和一个点(2D) 用Paul Bourke公式,我可以得到点到直线的正交投影的距离 (我还可以知道解决方案是否在线段内。) 好的,但我想知道相对于直线方向,点是在右边还是在左边 我可以使用 Math.acos(crossproduct/moduleProduct)但是crossproduct是零,所以我不能使用它 有什么想法吗?必须使用三角法,或者可能有使用矢量数据的技巧? Th。预先,您可以计算二维向量的叉积并查看其符号。 给定两个向量v1和v2,可以计算二维叉积为(v1.X*v2

我有一条直线和一个点(2D)

用Paul Bourke公式,我可以得到点到直线的正交投影的距离

(我还可以知道解决方案是否在线段内。)

好的,但我想知道相对于直线方向,点是在右边还是在左边

我可以使用
Math.acos(crossproduct/moduleProduct)
但是crossproduct是零,所以我不能使用它

有什么想法吗?必须使用三角法,或者可能有使用矢量数据的技巧?
Th。预先,您可以计算二维向量的叉积并查看其符号。
给定两个向量v1和v2,可以计算二维叉积为
(v1.X*v2.Y)-(v1.Y*v2.X)


如果有点
(x,y)
和线
(x0,y0)-(x1,y1)
,那么
((x-x0)*(y1-y0))-((y-y0)*(x1-x0))
就是二维向量叉积。如果点位于左半平面,则为负数。

是否应该使用点积而不是叉积,以避免可能的重复?