Android Matrix變換矩陣的探索 1

2021-09-20 00:24:11 字數 1252 閱讀 6189

標準矩陣又稱為對角矩陣,它的形式如下:

1, 0, 0  

0, 1, 0

0, 0, 1

矩陣的簡單運算規則:左矩陣的一行的每個值,分別按順序一一對應的乘上右矩陣的一列的值。也就是說,運算的左右兩個矩陣必須符合左矩陣的列數要等於右矩陣的行數,否則兩個矩陣就不能進行運算。下面給出兩個例子:

例1

例2可以看出,由於矩陣乘法的特殊性,所以它是不支援交換律的。不理解的同學可以找線性代數的書看看,這裡就不再贅述了。

matrix變換矩陣包含了4種基本變換:縮放、錯切(skew)、平移、旋轉。

我們先來看看matrix這個3*3的矩陣結構:

matrix矩陣結構

其實都是顧名思義的:

通過呼叫new matrix所獲得矩陣是乙個標準矩陣,我們可以用兩種方式變換它:

float floats = new float[9]; //建立乙個一維陣列

matrix matrix = new matrix(); //建立乙個變換矩陣物件

matrix.setvalues(floats); //將一維陣列轉化為變換矩陣

canvas.drawbitmap(bitmap,matrix,null); //達到變換的效果

set\pre\postscale() —— 進行縮放變換;

set\pre\postskew() —— 進行錯切變換;

set\pre\posttranslate() —— 進行平移變換;

set\pre\postrotate() —— 進行旋轉變換。

首先,正常情況下,程式是會按照**的順序執行的。其次,雖然矩陣乘法不支援交換律,但是支援** (t1 * t2) * t3 = t1 * (t2 * t3) ** 這樣的運算。就是說矩陣乘法先乘和後乘是一樣的。

所以,很多地方這樣說是錯誤的。

Android Matrix變換矩陣的探索(2)

前面我已經大概的介紹了一下matrix矩陣,下面我們來看一下 scale skew translate rotate 的計算過程 對於乙個座標為 x 0,y0 的點,我希望把他變成 k x0,k y0 那麼我們可以給它乘上乙個矩陣 k0 00k0 001 x0y 01 kx0 ky01 這樣,我們就...

Android Matrix類的使用

在android中,對的處理需要使用到matrix類,matrix是乙個3 x 3的矩陣,他對的處理分為四個基本型別 1 translate 平移變換 2 scale 縮放變換 3 rotate 旋轉變換 4 skew 錯切變換 在android的api裡對於每一種變換都提供了三種操作方式 set ...

android Matrix工具的使用

matrix工具類是對圖形進行特效處理。matrix 是乙個矩陣工具類,本身不能對圖形進行變換,可以與其他api來結合使用。獲取matrix物件,可以直接建立,可以從其他封裝了matrix類中獲取,transformation裡面就封裝了matrix物件。呼叫matrix物件的方法可以對圖形影象進行...