2011-10-03 35 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