计算点到线段的距离共有三种方法:经典算法、面积算法和矢量算法。考虑到算法的实用性和效率,故本次编程采用矢量算法。
用此方法考虑,我们只需要找到向量 在 方向上的投影,具体如下:
上面的 是 方向上的单位向量,其意义是给所求向量确定方向。 是两个
向量的内积,且
是向量长度。
,其中θ为向量AP与AB之间的夹角。
那么 即为上图中线段AC的长度值,不带有方向性。此数值与上述表征方向的整体构成有大小、有方向的新向量
向上的投影向量,C为投影点。 ,即为 在 方
根据得到的 ,由向量的方向性可知:如果情况是上图(a)所示,那么0
特殊情况如点在线段上、点在端点、点在线段延长线上等等的情况全部适用于此公式,只是作为特殊情况出现,无需另作讨论。这也是矢量算法思想的优势所在。
故根据r值的不同,最短距离