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

后端 未结 3 2109
面向向阳花
面向向阳花 2020-12-15 06:41

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 a

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-15 07:22

    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});
    

提交回复
热议问题