向量间投影和距离
这段时间用到了点到向量的距离,发现已经还给高数老师了。借这篇博客(参考英文博客)总结回顾一下,并且附上Python代码。先回顾下向量点积和叉乘公式, , 。
从下图可以看出b向量在a向量上的投影长度是 ,可以通过b和a的点积除以a的长度,实际的投影向量 。同理,b到a的距离为 ,可以通过b和a的叉乘除以a的长度得到,即 。可知 ,并且 。
点到向量的距离
考虑下图中上半部分,求点P到直线L的距离,其中L的方向向量是v。任取直线上一点Q, ,设P点座标为(1,3,8),Q点座标是(-2,1,3),可知 ,另设 。
通过叉乘的计算公式(如下图,联想行列式计算公式),我们可知 。通过 ,可知 。
Python程序
可以通过Python脚本模拟上述过程,代码如下。 求 , 求 ,两者相除之后再进行一次 得到 ,结果跟手动计算一致。
import numpy as np
QP = np.array([3,2,11])
v = np.array([1,-2,-1])
h = np.linalg.norm(np.cross(QP, v)/np.linalg.norm(v))
print h