计算三维空间中点到三角形平面的最短距离

来源:互联网 发布:华藏卫视网络直播 编辑:程序博客网 时间:2024/05/02 00:39

在R3空间,点p到平面(n,d)的距离很简单,就是double dist = p*n+d,当然这个是有向距离,投影点当然就是p-n*dist。这个简单的计算好像至今也没有一个来面试的人告诉我过我这么简洁的答案。希望下次告诉我这个答案的人能给我讲清楚个中原理哦。


那现在约束一下,在R3中求点p到三角形T{ABC}的最短距离?

如下图,不过有个问号,谁能解释下?

很显然x^是一个近似值,它是通过法向方程得到的,表示点p在三角形平面上投影点事向量AB与AC的线性组合,当然AB与AC线性无关。如果系数a,b在[0,1]之间,且a+b<=1,那么最近点与最短距离是不是一目了然?否则,投影点在三角形之外,那么就是求点p到三角形T的三边的最短距离,图中也已经给出,不知道有谁能看出来?

但是问题出在最左边,为什么我通过参数分离也能得到这个线性组合的系数?我很奇怪!

0 0