Tricks(三十八)—— 在不计算欧式距离的前提下判断点到两点的距离哪个更近

来源:互联网 发布:android源码分析实录 编辑:程序博客网 时间:2024/05/01 19:36

假设两点为 M0, M1,则两点的中点为 C=M0+M12,设 M0, M1 连线外一点 X,此时如何判断点 X,离 M0, M1 哪个点更近(不允许使用欧式距离直接计算)。

我们取中点 CX 的连线(CX),显然其与 M0M1连线(M0M1)的夹角(是否大于90度)决定了 XM0M1 的远近。

判断两个向量的夹角是否大于90度,自然想到使用向量内积:

cosθ=a⃗ b⃗ a⃗ b⃗ 

也即两向量的内积如果为正,则表示两向量的夹角小于90度,对本例而言,XM1 点更近,反之亦然。

0 0
原创粉丝点击