你可以用拉格朗日乘子法来解决这一问题:
你知道飞机上的最近点必须是这样的形式:
c = p + v
哪里c
是最近点与v
是一个向量沿着飞机(因此与正常的n
正交)。您正在尝试寻找具有最小范数(或范数平方)的c
。因此,您正试图最小化dot(c,c)
,但v
与n
正交(因此dot(v,n) = 0
)。
因此,设置拉格朗日:
L = dot(c,c) + lambda * (dot(v,n))
L = dot(p+v,p+v) + lambda * (dot(v,n))
L = dot(p,p) + 2*dot(p,v) + dot(v,v) * lambda * (dot(v,n))
并采取相对于所述衍生物v
(和设置为0)来获得:
2 * p + 2 * v + lambda * n = 0
可以由以下等式在求解拉姆达以上由点生产双方n
得到
2 * dot(p,n) + 2 * dot(v,n) + lambda * dot(n,n) = 0
2 * dot(p,n) + lambda = 0
lambda = - 2 * dot(p,n)
再次请注意,dot(n,n) = 1
和dot(v,n) = 0
(因为v
在平面中,并且n
与其正交)。然后subtitute lambda
早在获得:
2 * p + 2 * v - 2 * dot(p,n) * n = 0
和解决v
获得:
v = dot(p,n) * n - p
,接着再将这回c = p + v
获得:
c = dot(p,n) * n
这个向量的长度是|dot(p,n)|
并且符号告诉您该点是否在从原点开始的法向矢量的方向上,还是与第e起源。
尽管法线是从表面平面的法线。如果该点已经是飞机上的一个点,那么它们将处于90度角,因此,答案将始终为0.我不明白这是从原点到飞机的距离,特别是如果飞机是飞机距离原点的随机距离。 此外,我确实从逻辑上和几何学角度上找出了点与表面的关系。唯一让我陷入困境的是这个。 – Ilya 2011-12-16 22:07:11