2010-10-13 59 views

回答

0

該表示法將您的位置向量表示爲列或行。

全面和方便的教程(但你的符號反轉),你可以看here

HTH!

1

的原因是你給它是底排不符合你可能需要的任何轉換,你不能設置矩陣的第三排。

作用於2D矢量在笛卡爾座標中2×2矩陣只能執行線性變換(秤,歪斜,和旋轉圍繞原點 - 不翻譯)。

爲了得到仿射變換2D(包括翻譯),你需要使用齊次座標。這在實際應用中意味着你碰到三個維度,爲所有矢量添加一個虛擬的「z」座標,並且無論何時需要二維平移,您都會執行垂直於z軸的三維偏斜。這是第三列。

按照慣例(爲簡單起見)虛擬Z值始終爲1。出於實用的目的,它充當一個「翻譯速度」 - 它翻一番將翻一番,您嘗試執行任何翻譯的效果。所以,我們不希望任何東西到Z值從1

矩陣第三行的改變,因爲你寫它對應於z的值。只要該行保持「0 0 1」x並且y不會影響z,並且它保持爲1.如果可以設置該行,則可能會意外地讓x和y「泄漏」到z中,或者將該值的z,使你從那時起的所有轉換非常奇怪。鎖定該行可防止發生這種情況,而不會消除任何有用的轉換。

當然,這就是理論。實際上,軟件甚至不可能包含第三行的模型。他們只是使用一個假設「0 0 1」的公式的特例 - 所以這是答案的另一部分。你不能設置它,因爲它實際上並不存在軟件的工作方式。 ;)

相關問題