点线位置关系
几何图元参考: 计算几何-几何图元
设有一个二维点 P
点与线段
如果把线段 AB 看作一个有向线段,那么点 P 与线段 AB 之间的位置关系有以下几种情况:
- 点 P 在线段 AB 上
- 点 P 在线段 AB 的延长线上
- 点 P 在线段 AB 的左侧
- 点 P 在线段 AB 的右侧
以上四种情况可以分成两类:
- 共线: 点 P 在线段 AB 上或者在线段 AB 的延长线上
- 不共线: 点 P 在线段 AB 的两侧
通过点乘
运算判断向量的夹角, 进而判断共线关系, 也可以通过叉乘
计算有向面积, 判断共线关系.
- 若 ∣AB⋅AP∣=∣AB∣⋅∣AP∣, 则 P 与线段 AB 共线
- 若 AB×AP=0↔ △ABP 面积为零 ↔ 则 P 与线段 AB 共线
共线的情况下:
如果点 P 在线段 AB 上, 显然 ∣AP∣+∣BP∣=∣AB∣
也可以通过点乘进行判断:
0≤AB⋅AP≤AB⋅AB
因为如果 P 在 AB上, 那么 AP 的投影肯定在 AB 上, 且 0≤ 投影长度 ≤∣AB∣.
不共线的情况下:
如果点 P 在线段 AB 的两侧, 显然 △ABP=0
A, B, P3 三个顶点逆时针排列, 有向面积为正, A, B, P4 三个顶点顺时针排列, 有向面积为负
AB×AP>0↔S△ABP>0↔P 在 AB 的左侧
AB×AP<0↔S△ABP<0↔P 在 AB 的右侧
点与直线
由于直线是无限长的,所以点 P 与直线 AB 之间的位置关系只有两种情况:
- 点 P 在直线 AB 上
- 点 P 不在直线 AB 上
直线方程为 ax+by+c=0, 点 P(x0,y0), 则有:
ax0+by0+c=0↔ 点 P 在直线 AB 上
ax0+by0+c=0↔ 点 P 不在直线 AB 上
点与射线
射线是有向的,所以点 P 与射线 AB 之间的位置关系有以下几种情况:
- 点 P 在射线 AB 上
- 点 P 在射线 AB 的反向延长线上
- 点 P 在射线 AB 的左侧
- 点 P 在射线 AB 的右侧
设射线 AB 的起点为 A, 方向为 AB
当 AP 和 AB 共线时:
- AP⋅AB>0↔ 点 P 在射线 AB 上
- AP⋅AB<0↔ 点 P 在射线 AB 的反向延长线上
点与圆和圆弧
设圆心为 O, 半径为 r, 点 P 与圆之间的位置关系有以下几种情况:
- 点 P 在圆上: ∣OP∣=r
- 点 P 在圆内: ∣OP∣<r
- 点 P 在圆外: ∣OP∣>r
只考虑圆弧是圆的一部分, 圆弧的圆心为 O, 半径为 r, 起点为 A, 终点为 B, 点 P 与圆弧之间的位置关系有以下几种情况:
- 点 P 在圆弧上: ∠AOP+∠POB=∠AOBand∣OP∣=r
- 点 P 不在圆弧上: ∠AOP+∠POB=∠AOBor∣OP∣=r