2016-10-15 128 views
0

Vector Porjection through a point向量投影通過一個點到一個平面上

我需要計算的黃星的位置,在飛機上,在平面Tangent Space。因此,我首先需要從眼睛投射一個矢量,通過粉紅色的方塊,然後在飛機上找到最終的位置(找到黃色的星星)。

一切都在切線空間已經。所以我知道眼睛的位置和方向,以及粉紅色正方形的位置,相對於平面的中心(切線空間)。

由此產生的黃星必須在飛機上。所以它相對於藍色箭頭方向的位置必須始終爲零。在上面的圖片中,它對於綠色和紅色箭頭的位置具有正值。

我一直在試圖找出如何使用數學如Vector Projection這樣做,但我似乎無法繞過它。

+0

求解'z = 0'的直線(視線)方程。 – ja72

回答

1

所以相機有3d位置矢量r和方向矢量e。這架飛機是由z=0您使用上線的方程

z = r_z + t * e_z = 0 } t = -r_z/e_z 

座標然後定義

x = r_x + t * e_x 
y = r_y + t * e_y 

我認爲一切都已經具有所需的座標系與藍色一起表達-axis。

+0

非常感謝!我想在16歲時輟學並沒有幫助我大聲笑。是的,一切都在切線空間/座標系統中。我假設** e **必須是_normalized_向量。這需要我測試一下,但稍後我會回來,並將其標記爲答案,如果它有效。 :) – user2236034

+0

實際上** e **不會被標準化,但它必須有一個非零的_z_軸組件。如果它是標準化的,那麼't'是距該點的_xy_平面的距離。 – ja72

+1

我不得不添加'y =((p.y <0)?-y:y);'不知道爲什麼。 :)對於幾乎所有的飛機,我都必須使用交換x和y。可能是因爲最後我正在從飛機上的紋理讀取一個像素,而且我確實沒有在「所需的座標系」中找到所有的東西。但總體而言,只需稍作調整即可使用! Thx:D – user2236034