2d變換矩陣的逆矩陣:
平移矩陣的逆矩陣:[1,0,-tx][0,1,-ty][0,0,1]就相當於之前的是往前移動,現在是往後移動了。
縮放矩陣的逆矩陣:[1/sx,0,0][0,1/sy,0][0,0,1]就相當於把之前x,y乘以的倍數,現在除以它的倍數的倒數。
旋轉矩陣的逆矩陣:[cosx,sinx,0][-sinx,cosx,0][0,0,1]就相當於把之前旋轉過去的,轉回來。
(注意:乙個平移(旋轉、縮放)後的 點 再乘以相應的逆矩陣就等於原來沒有平移(旋轉、縮放)的點。)
如果乙個點只是單純的乘以逆矩陣,那麼這個逆矩陣和普通的變換矩陣作用是一樣的,只不過作用是相反的而已。
2d變換的物體變換和座標系變換:
物體變換就是物體的座標系沒有發生變換的變化,如下:
f(b1,b2,b3,o)是三維座標系位置,m是變換矩陣,c是點的齊次座標。
f(mc)是物體變化的數學表達形式,括號引起來的意思是m只會對c進行變化(平移、縮放、旋轉),不會對座標系原點進行變換。
座標系變化的數學表示式:fmc,m對點進行變換,也對座標系原點進行變換了。
復合變換:把平移、旋轉、縮放結合起來,形成乙個複雜的變化過程。
矩陣乘法不滿足交換律,所以不同的變換順序得到的結果可能是不一樣的。
比如:frtc,代表的是物體變換(先對點進行t變換(平移變換),然後對點進行r變換(旋轉變換)。
如果換成ftrc,則代表先進行旋轉,再進行平移變換,結果肯定是不一樣的。
f(r(tc)) ->f(rc*) -> fc** -> c***;
((fr)t)c ->(f*t)c -> (f**)c -> c***;
前者是對物體變換得到最終的c***點,後者是對座標系原點的變換(既座標變換)得到最終的c***點,結果是一樣的。
【注意:以下矩陣的用法:矩陣 * (四行一列齊次座標)】也就是所謂的「左邊是矩陣,右邊是齊次座標」!反過來是不行的!
平移矩陣:
3d變換:10
0tx01
0ty00
1tz00
01縮放矩陣 :sx0
000sy
0000
sz000
01旋轉矩陣:
點沿著x軸旋轉,x的座標不變。10
000cosx
-sinx00
sinx
cosx00
001
點沿著y軸旋轉,y的座標不變。
cosx
0sinx00
100-sinx
0cosx00
001點沿著z軸旋轉,z的座標不變。
cosx
-sinx00
sinx
cosx00
0010
0001
旋轉這一部分有些難以理解,大概記住就ok了,如果研究下的話,可以自己畫畫,繞著y轉的話,你就不用管y座標了,因為它肯定不會變化的,只需作出乙個xz平面圖,再這個平面圖上對它進行研究,就跟2d旋轉一樣推理的。
在unity中使用matrix4x4.translate(vector3)建立乙個平移矩陣。
matrix4x4.rotate(四元數)建立乙個旋轉矩陣。
matrix4x4.scale建立乙個縮放矩陣。
matrix4x4.trs建立乙個移動、旋轉、縮放的復合矩陣。
使用matrix4x4.multiplypoint或者matrix4x4.multiplypoint3x4來變換乙個點。
使用matrix4x4.multiplyvector來變換乙個向量。
3D數學學習筆記 笛卡爾座標系
1.3d數學是一門和計算機幾何相關的學科。計算幾何則是研究用數值方法解決幾何問題的學科。3d數學解說怎樣在3d空間中準確度量位置 距離和角度。2.在3d數學裡使用最廣泛的度量體系是笛卡爾座標系統。笛卡爾數學由法國數學家rene descartes發明,並以他的名字命名 3.關於數的型別 實數包括有理...
3D數學 學習筆記(三) 3D中繞任意軸的旋轉
本文 不要小看我們在unity或者3dmax中的乙個簡單的旋轉物體操作。題記 這裡需要用到的知識 向量運算 數量積,叉乘,加減 矩陣基本運算。讓我們匯出繞任意軸n旋轉角度 的矩陣。即 vr n.v 只要能用v,n,表示出v 即可,然後再求出基向量。方法如下 看圖 說明 1.向量n是單位向量 2.vi...
3D數學基礎
vector是向量,向量的意思,向量既有大小,又有方向,verctor3 就是三維向量,乙個三維向量會有三個分量,分別是 x,y,z,在 unity 中每乙個遊戲物件都至少會有乙個元件叫 transform,transform 主要用來控制遊戲物件的位置,旋轉和縮放。vector3.distance...