2011-01-31 134 views
0

我想知道是否有人可以向我展示開發可用作觀察變換的4x4變換矩陣的步驟。攝像頭/觀察變換矩陣

相機在(1,2,2)^ T 相機指向方向(0,1,0)^ T 向上矢量,它將被映射到正y方向圖像,是方向(0; 0; 1)^ T。

我查看了我的筆記,不明白如何解決這些類型的問題,因爲我知道它們在計算機圖形學中很常見。

回答

1

您可以使用公式here,只填充矩陣並將每個矩陣依次相乘,直到您構建了變換矩陣。 (旋轉矩陣可能有錯誤,請仔細檢查公式here。)

您試圖解決什麼類型的問題?你沒有真正問過一個狹隘的問題。

攝像機位置將與翻譯矩陣進行設置:

[1 0 0 X] 
[0 1 0 Y] 
[0 0 1 Z] 
[0 0 0 1] 

代[1,2,2]^T爲[X,Y,Z]^T

會給你一個平移矩陣:

[1 0 0 1] 
[0 1 0 2] 
[0 0 1 2] 
[0 0 0 1] 

這可以通過輸入矢量相乘

[x y z 1]^T 

轉化這一點上,像這樣:

[1 0 0 1] [x] = x+1 
[0 1 0 2] [y] = y+2 
[0 0 1 2] [z] = z+2 
[0 0 0 1] [1] = 1 

對於輸入向量[4,5,6,1],這將得到[5,7,8,1]。

看到它只是通過上面插入的X,Y,Z移動或轉換輸入x,y,z點(現在忽略最後一個組件)。

記住乘以向量v一個矩陣M爲您提供了一個載體,把它叫做p

p = M v 

認爲這是調用函數,有點像P = SIN(X),而是P = M(v)其中M是一個變換函數,它恰好是矩陣的形式,因爲我們關心的變換可以嚴格地由線性算子表示,這是一種說法矩陣乘法的奇妙方式,這只是一種奇特的方式說4個標量乘法的總和。要將這些矩陣變換鏈接爲函數調用,只需將它們相繼乘以它們即可。 (請注意,這是一種簡化,因爲我們需要進行分割來進行透視變換,所以我們用4x4矩陣而不是僅僅3x3來欺騙和製造技巧 - 這就是奇怪的術語「均勻座標」的含義。)

你的班級是否有教科書或講義(如果它在線,你可以鏈接到它)?我會想象這些材料會涵蓋其他轉換並可能提供示例。你可以嘗試一下,用上面的4×4矩陣乘以一個向量v = [-9 -8 -7],看看你從中得到了什麼[x y z w]向量。然後嘗試插入旋轉矩陣的其他值。

如果翻譯矩陣不是0,0,0,您可能會遇到棘手的比特,您需要將旋轉矩陣與翻譯矩陣按照正確的順序相乘:如果翻譯矩陣不是0,0,0,則R T將是與T R不同的矩陣。

+0

問題是要求我開發一個4 x 4矩陣,可以用作這些參數的視圖轉換,並顯示我的工作。 – Joey 2011-01-31 06:37:34