1. 程式人生 > >計算三維空間中點到三角形平面的最短距離

計算三維空間中點到三角形平面的最短距離

在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的三邊的最短距離,圖中也已經給出,不知道有誰能看出來?

但是問題出在最左邊,為什麼我通過引數分離也能得到這個線性組合的係數?我很奇怪!