Unity中Transform組件中transform矩陣獲取及驗(yàn)證unity旋轉(zhuǎn)順序

Unity中Transform組件中transform矩陣獲取及驗(yàn)證unity旋轉(zhuǎn)順序

最近在做根據(jù)深度信息恢復(fù)三維空間點(diǎn)的工作,逃不出R t矩陣,以及各個(gè)坐標(biāo)系之間的轉(zhuǎn)換。

我使用的是在Unity場(chǎng)景里獲取圖像的深度信息,在恢復(fù)過程中,旋轉(zhuǎn)問題一直困擾,近期有了新的發(fā)現(xiàn),特此分享。

一、Transform組件中transform矩陣獲取

要獲取Transform里的旋轉(zhuǎn)平移矩陣,首先我新建一個(gè)名為“Mytransform”的C#腳本文件,定義matrix矩陣,用SetTRS即可獲取旋轉(zhuǎn)平移。

更改控件里的旋轉(zhuǎn)平移量,可以看到獲得的矩陣各元素的值。

修改的值
對(duì)應(yīng)的4*4矩陣

我想要獲取這些值將其應(yīng)用于我的VS項(xiàng)目中,故寫了一段簡(jiǎn)單的小代碼,將其以txt文件輸出。

簡(jiǎn)單的輸出txt程序

因?yàn)槲彝耆莡nity新手,很多操作都不懂。這里需要特別注意:

1.擴(kuò)展的類和方法必須聲明為static

2.而后就可以在腳本里直接調(diào)用了。

我這里將其包含在一個(gè)自定義的命名空間Output里。

輸出txt后將其在VS以矩陣的形式輸出。



二、驗(yàn)證unity的旋轉(zhuǎn)順序

繞坐標(biāo)軸旋轉(zhuǎn): x軸-0/ y軸-0/ z軸-0;平移: 15 12 1


平移

繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-0/ z軸-0;平移:15 12 1


x軸轉(zhuǎn)+平移

繞坐標(biāo)軸旋轉(zhuǎn):x軸-0/ y軸-30/ z軸-0;平移:15 12 1


y軸轉(zhuǎn)+平移

繞坐標(biāo)軸旋轉(zhuǎn):x軸-0/ y軸-0/ z軸-30;平移:15 12 1


z軸轉(zhuǎn)+平移

Unity獲取矩陣

繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-30/ z軸-30;平移:15 12 1


旋轉(zhuǎn)+平移

程序中計(jì)算矩陣R = ry*rx*rz

繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-30/ z軸-30;平移:15 12 1


旋轉(zhuǎn)+平移

所以,經(jīng)驗(yàn)證,發(fā)現(xiàn),unity的旋轉(zhuǎn)順序應(yīng)該是先z再x后y。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容