2012-10-26 33 views
2

已知:3D空間中的三角形頂點,該三角形上包含的三角形區域的x,y座標。在特定(x,y)座標下評估三角形

通緝:給定點的z座標。

所有3個三角形頂點都有不同的(x,y)座標(它們是高度圖座標),因此不需要處理多個(無限)匹配的情況。

我想在C中這樣做,這意味着一種算法在簡單數字類型上運行,例如浮動將是最好的(沒有矩陣或矢量操作)。

+0

所以[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-試過/)你的具體問題是什麼? – Mike

+0

若要處理3D,首先需要三個點中的每一個的x,y和z座標。試想一下,這是一個單位的地圖。他們添加輪廓來添加額外的維度! –

+0

只是要清楚,這是你問的問題:找到由3個點定義的3D空間中的平面和由其X和Y座標定義的Z軸對齊線之間的交點? – hyde

回答

3

這通常是使用向量/矩陣完成的,這些向量/矩陣只是底層操作的簡短表示法。

  • 從三個頂點O =(OX,OY)= POINT1
  • 使兩個矢量U =(UX,UY)選擇的參考點= POINT2 - O; V =(VX,VY)= POINT3 - Ø

  • 求解線性系統 的x,y = U * U + V * V爲u和v

    X = U *(P2X-OX)+ v *(P3X-OX)
    Y = U *(P2Y-OY)+ v *(P3Y-OY)

檢查0 < = U,v < = 1和0 < = U + v < = 1
如果是,則點x,y位於三角形內部並且
z = u *(p2z-oz)+ v *(p3z-oz)

+0

謝謝。看起來這個問題實際上就是這個問題。我認爲有些東西涉及到將矢量轉換爲正交基,但顯然沒有必要。 – cib