2011-10-03 69 views
3

下午好,android.graphics.Matrix - >如何postScale工作

可以說我有一個矩陣。我有2個值,0.9爲縮小和1.1進行放大。

當我申請的matrix.postScale(0.9, 0.9); 3次 後來我申請了matrix.postScale(1.1, 1.1); 3次

我不回來,我開始!

例如,下面是我記錄結果:

電流比例的後分頻器(X,X)帶來的規模

1     .9    .9 
.9     .9    .80999994 
.80999994   .9    .7189999 

.7189999   1.1    .8018999 
.8018999   1.1    .8820899 
.8820899   1.1    .97029895 

正如你可以看到,我不回1.這是怎麼回事上,我是否錯誤地得到當前的比例?

例如,要得到正確的所有的值,我這個預成型後的後縮放應用:

matrix.getValues(tempArrayFloat); 
Number = tempArrayFloat[Matrix.MSCALE_X]; 

我只是假設MSCALE_X和MSCALE_Y會是一樣的嗎?

我的問題是,如果我用一個特定值3次縮放一個矩陣,.9 - > .9 - > .9,我需要將它縮放回原始位置?

-Kind問候,

保羅

回答

2

秤回用1.111111112,而不是1.1,但如果你縮放位圖可能更容易將其調整到一個圓形的值。

基本上你可以聲明matrix.postScale(1.0/0.9, 1.0/0.9);這應該是四捨五入到最接近像素

+0

乾杯,謝謝你的幫助! – Killesk

7

的數字在表格的右邊給你答案,縮放矩陣的縮放值相乘點。所以應用matrix.postScale(0.9)三個等級0.9*0.9*0.9 = 0.729。應用matrix.postScale(1.1)三個等級按1.1*1.1*1.1=1.331。要回到你開始的地方,你需要按比例縮小1.0/0.729=1.372

+0

歡呼聲,謝謝你的幫助! – Killesk