Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to map java's AffineTransform to android's Matrix?

Tags:

java

android

Suppose I initialize an AffineTransform as below:

AffineTransform af = new AffineTransform(2, 3, 4, 5, 6, 7);

How would I create an equivalent Matrix using android's sdk?

like image 344
ab11 Avatar asked Aug 20 '10 20:08

ab11


1 Answers

From AffineTransform's javadoc:

[ x']   [  m00  m01  m02  ] [ x ]   [ m00x + m01y + m02 ]
[ y'] = [  m10  m11  m12  ] [ y ] = [ m10x + m11y + m12 ]
[ 1 ]   [   0    0    1   ] [ 1 ]   [         1         ]

Not sure, but perhaps

Matrix m = new Matrix();
m.setValues(new float[]{2,3,4,5,6,7,0,0,1});

EDIT: Commenter points out that the order should be

m.setValues(new float[]{2,4,6,3,5,7,0,0,1});
like image 104
I82Much Avatar answered Sep 16 '22 14:09

I82Much