簡體   English   中英

如何從LH 4x4世界矩陣中獲取位置和x / y / z軸?

[英]How do I get position and x/y/z axis out of a LH 4x4 world matrix?

據我所知,Direct3D使用LH坐標系對嗎?

那么,如何從LH 4x4(世界)矩陣中獲取位置和x / y / z軸(局部定向軸)呢?

謝謝。

如果您不知道:LH代表左撇子

如果4x4矩陣是我認為的樣子(均質剛體轉換矩陣,與SE(3)的元素相同),那么應該很容易獲得您想要的。 任何剛體變換都可以由形式為4x4的矩陣表示

g_ab = [ R, p;
         0, 1]

以塊矩陣表示法。 下標ab表示該變換將獲取幀b表示的點的坐標,並將告訴您坐標a如幀a R是一個3x3旋轉矩陣, p是一個向量,當旋轉矩陣為1(無旋轉)時,它告訴您b在幀a中的原點的坐標。 但是,通常會出現旋轉,因此您必須執行以下操作。

通過將變換應用於點(0,0,0),可以給出矩陣描述的坐標系的位置。 這將使您很好地知道該點所在的世界。 訣竅是,在處理SE(3)時,必須在點的末尾添加1,在向量的末尾添加0,這使它們的向量的長度為4而不是長度3,因此可以通過矩陣! 因此,要將局部坐標系中的點(0,0,0)轉換為世界框架,您需要將矩陣(我們稱其為g_SA)乘以矢量(0,0,0,1)。 要獲得向量 (x,y,z)的世界坐標,請將矩陣乘以(x,y,z,0)。 您可以認為這是因為向量是點的差異,所以最后一個元素中的1消失了。 因此,例如,要查找世界坐標中本地x軸的表示形式,可以將g_SA *(1,0,0,0)乘以。 要找到y軸,請執行g_SA *(0,1,0,0),依此類推。

我所見過的最好的地方(也是我從中學習的地方)是Murray,Li和Sastry撰寫的《機器人操縱的數學入門》,而您感興趣的章節是2.3.1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM