<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Android中的Matrix類(lèi)介紹

Android中的Matrix類(lèi)介紹

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

Matrix顧名思義就是大學(xué)的線(xiàn)性代數中的矩陣,關(guān)于矩陣的基本知識和加減乘除運算這里不再贅述。

本文引用地址:http://dyxdggzs.com/article/201609/304414.htm

Android中的Matrix類(lèi)是一個(gè)比較簡(jiǎn)單的3x3的3階矩陣,結構如下:

float matrix = {MSCALE_X, MSKEW_X, MTRANS_X, MSKEW_Y, MSCALE_Y, MTRANS_Y,

MPERSP_0, MPERSP_1, MPERSP_2 };

結構如上:其中 MSCALE_X和MSCALE_Y分別是控制X軸和Y軸方向的縮放,MSKEW_X和MSKEW_Y是分別控制X坐標和Y坐標的線(xiàn)性?xún)A斜系數,MTRANS_X和MTRANS_Y則是控制X方向和Y方向的線(xiàn)性平移。MPERSP_0、MPERSP_1和MPERSP_2暫時(shí)使用不多,以后補充說(shuō)明。

有了上訴描述了,所謂的矩陣變換主要就是針對這個(gè)3階矩陣進(jìn)行算術(shù)運算了!如平移操作從(0,0)平移到(10,120)則直接將上述矩陣的MSCALE_X=10和MSCALE_Y=120即可Matrix.setValues(matrix數組)。這樣Canvas就可以使用該矩陣進(jìn)行繪圖操作,實(shí)現平移。

其中旋轉矩陣比較特殊的,其結構如下:

float matrix = {cosA, -sinA, 0, sinA, cosA, 0,

0, 0, 1 }; 其中A為旋轉的角度,如需旋轉操作只需將角度傳入上述矩陣即可。

同時(shí)我們知道矩陣的乘法是不對稱(chēng)的,即A*B !=B*A,這樣的話(huà)就涉及到矩陣乘法中的左乘和右乘了,同樣Android中Matrix中也實(shí)現了左乘和右乘的函數,所有postXXX均為左乘運算,所有preXXX均為右乘運算。這點(diǎn)在我們使用Matrix進(jìn)行組合變換時(shí)需要注意的問(wèn)題。

同時(shí)由于矩陣對象最后的狀態(tài)是進(jìn)過(guò)所有變換后運算獲得的矩陣,所有如果你需要重新使用該矩陣又不想保留之前的狀態(tài)時(shí),需要調用reset()重置矩陣的狀態(tài),以免發(fā)生錯誤。同時(shí)需要注意的是Matrix類(lèi)的setXXX方法都會(huì )默認調用reset()進(jìn)行矩陣的重置,所以在實(shí)現組合變換時(shí)一點(diǎn)要注意不要在變換的中間調用setXXX方法,這樣setXXX方法之前的變換都被忽略了。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>