叉积方法,求点与线段的相对位置

叉积可以用来判断一个点在一条线段的哪个方向。
线段两个端点坐标为 A(x1, y1), B(x2, y2),
假设点 P 的坐标为 (px, py),
则向量 AP 和 BP 的坐标表示为:
AP = (px - x1, py - y1)
BP = (x2 - px, y2 - py)
叉积的计算公式为:

AP*BP=\begin{vmatrix} px-x1 & py-y1 & \\ x2-px & y2-py \end{vmatrix}
= (py - y1)(x2 - px) - (px - x1)(y2 - py)
叉积的几何意义是:
当 AP × BP > 0 时,点 P 在线段 AB 的顺时针方向;即点P在线段AB的下面。
当 AP × BP < 0 时,点 P 在线段 AB 的逆时针方向;即点P在线段AB的上面。
当 AP × BP = 0 时,点 P 在线段 AB 或其延长线上。即点P在线段AB上。

你可能感兴趣的:(python,数学)