点线位置关系

几何图元参考: 计算几何-几何图元
设有一个二维点 PP

点与线段

如果把线段 ABAB 看作一个有向线段,那么点 PP 与线段 ABAB 之间的位置关系有以下几种情况:

  1. PP 在线段 ABAB
  2. PP 在线段 ABAB 的延长线上
  3. PP 在线段 ABAB 的左侧
  4. PP 在线段 ABAB 的右侧

点与线段的四种位置关系

以上四种情况可以分成两类:

  1. 共线: 点 PP 在线段 ABAB 上或者在线段 ABAB 的延长线上
  2. 不共线: 点 PP 在线段 ABAB 的两侧

点和线段共线

通过点乘运算判断向量的夹角, 进而判断共线关系, 也可以通过叉乘计算有向面积, 判断共线关系.

  • ABAP=ABAP|\overrightarrow{AB} \cdot \overrightarrow{AP}| = |\overrightarrow{AB}| \cdot |\overrightarrow{AP}|, 则 PP 与线段 ABAB 共线
  • AB×AP=0\overrightarrow{AB} \times \overrightarrow{AP} = 0 \leftrightarrow ABP\triangle ABP 面积为零 \leftrightarrowPP 与线段 ABAB 共线

共线的情况下:

如果点 PP 在线段 ABAB 上, 显然 AP+BP=AB|\overrightarrow{AP}| + |\overrightarrow{BP}| = |\overrightarrow{AB}|

也可以通过点乘进行判断:

0ABAPABAB0 \leq \overrightarrow{AB} \cdot \overrightarrow{AP} \leq \overrightarrow{AB} \cdot \overrightarrow{AB}

因为如果 PPABAB上, 那么 AP\overrightarrow{AP} 的投影肯定在 AB\overrightarrow{AB} 上, 且 00 \le 投影长度 AB\le |\overrightarrow{AB}|.

不共线的情况下:

如果点 PP 在线段 ABAB 的两侧, 显然 ABP0\triangle ABP \neq 0

点在线段两侧

AA, BB, P3P_3 三个顶点逆时针排列, 有向面积为正, AA, BB, P4P_4 三个顶点顺时针排列, 有向面积为负

AB×AP>0SABP>0P\overrightarrow{AB} \times \overrightarrow{AP} > 0 \leftrightarrow S_{\triangle ABP} > 0 \leftrightarrow PABAB 的左侧

AB×AP<0SABP<0P\overrightarrow{AB} \times \overrightarrow{AP} < 0 \leftrightarrow S_{\triangle ABP} < 0 \leftrightarrow PABAB 的右侧

点与直线

点与直线

由于直线是无限长的,所以点 PP 与直线 ABAB 之间的位置关系只有两种情况:

  1. PP 在直线 ABAB
  2. PP 不在直线 ABAB

直线方程为 ax+by+c=0ax + by + c = 0, 点 P(x0,y0)P(x_0, y_0), 则有:

ax0+by0+c=0ax_0 + by_0 + c = 0 \leftrightarrowPP 在直线 ABAB
ax0+by0+c0ax_0 + by_0 + c \neq 0 \leftrightarrowPP 不在直线 ABAB

点与射线

点与射线

射线是有向的,所以点 PP 与射线 ABAB 之间的位置关系有以下几种情况:

  1. PP 在射线 ABAB
  2. PP 在射线 ABAB 的反向延长线上
  3. PP 在射线 ABAB 的左侧
  4. PP 在射线 ABAB 的右侧

设射线 ABAB 的起点为 AA, 方向为 AB\overrightarrow{AB}

AP\overrightarrow{AP}AB\overrightarrow{AB} 共线时:

  • APAB>0\overrightarrow{AP} \cdot \overrightarrow{AB} > 0 \leftrightarrowPP 在射线 ABAB
  • APAB<0\overrightarrow{AP} \cdot \overrightarrow{AB} < 0 \leftrightarrowPP 在射线 ABAB 的反向延长线上

点与圆和圆弧

点与圆和圆弧

设圆心为 OO, 半径为 rr, 点 PP 与圆之间的位置关系有以下几种情况:

  1. PP 在圆上: OP=r|\overrightarrow{OP}| = r
  2. PP 在圆内: OP<r|\overrightarrow{OP}| < r
  3. PP 在圆外: OP>r|\overrightarrow{OP}| > r

只考虑圆弧是圆的一部分, 圆弧的圆心为 OO, 半径为 rr, 起点为 AA, 终点为 BB, 点 PP 与圆弧之间的位置关系有以下几种情况:

  1. PP 在圆弧上: AOP+POB=AOBandOP=r\angle AOP + \angle POB = \angle AOB and |\overrightarrow{OP}| = r
  2. PP 不在圆弧上: AOP+POBAOBorOPr\angle AOP + \angle POB \neq \angle AOB or |\overrightarrow{OP}| \neq r