第一章 点与线性元素的距离

基于 js 开源项目:计算机几何算法库 Compute Geometry Algorithm(CGA),开源地址:即将到来

点与线

点由z,y,z三个坐标组成,可以表示为

直线可以表示为, 是直线上的一点,是直线的方向。 是直线上任意的一点

avatar

点到直线

假设我们有点和直线,我们要找出点的最短距离,如果上离最近的点 在直线上,此时

avatar

满足:

并且可以确定

那么点 Q 到直线 L 的距离为 d,说明:符号表示向量的长度(范数)

为单位矩阵,那么

伪代码如下,JavaScript:

点到射线和线段

  1. 点到射线

    如果是直线,上文已经详细说过. 如果是射线,那么我们限制为非负数, 是点到射线的最近点的系数,如果,那么点到最近点的的线是与垂直的,但是如果 是,到射线所在的直线上的最近点是在射线之外,那么最近点,就是到的原点

    图示如下: avatar

  2. 点到射线

    线段可以定义成两个端点,方向可以定义为 根据的定义,两个端点可以表示为 ,我们就可以得到点到线段的最短距离的方程:

    图是如下: avatar