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)平移量王财,可以看到獲得的矩陣各元素的值。
我想要獲取這些值將其應(yīng)用于我的VS項(xiàng)目中四康,故寫了一段簡(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
繞坐標(biāo)軸旋轉(zhuǎn):x軸-0/ y軸-30/ z軸-0今妄;平移:15 12 1
繞坐標(biāo)軸旋轉(zhuǎn):x軸-0/ y軸-0/ z軸-30;平移:15 12 1
Unity獲取矩陣
繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-30/ z軸-30鸳碧;平移:15 12 1
程序中計(jì)算矩陣R = ry*rx*rz
繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-30/ z軸-30盾鳞;平移:15 12 1
所以,經(jīng)驗(yàn)證瞻离,發(fā)現(xiàn)腾仅,unity的旋轉(zhuǎn)順序應(yīng)該是先z再x后y。