que respondieron a la pregunta de ayer, pero me siento sometiong mal hoy, así que corregir la respuesta aquí:
matrix: float[] values ={1.2f,0.5f,30,0.5f,1.2f,30,0,0,1};
//as we all know, the basic value in matrix,means no transformation added
matrix2: float[] values2 ={1f,0,0,0,1f,0,0,0,1};
Let's say our matrix values are the values above.
1, cuando hacemos la transformación, como a continuación:
matrix.preTranslate(-50, -50);
is equals to do sequence transformation to matrix2 above like below:
matrix2.postTranslate(-50, -50);
matrix2.postSkew(0.5f/1.2f,0.5f/1.2f);// note here
matrix2.postScale(1.2f, 1.2f);
matrix2.postTranslate(30, 30);
2, cuando hacemos la transformación como a continuación:
matrix.preRotate(50);
is equals to do sequence transformation to matrix2 like below:
matrix2.postRotate(50);
matrix2.postSkew(0.5f/1.2f,0.5f/1.2f);
matrix2.postScale(1.2f, 1.2f);
matrix2.postTranslate(30, 30);
3, cuando hacemos la transformación como belo w:
matrix.preScale(1.3f,1.3f);
is equals to do sequence transformation to matrix2 like below:
matrix2.postScale(1.3f,1.3f);
matrix2.postSkew(0.5f/1.2f,0.5f/1.2f);
matrix2.postScale(1.2f, 1.2f);
matrix2.postTranslate(30, 30);
4, cuando hacemos la transformación, como a continuación:
matrix.preSkew(0.4f,0.4f);
es igual que hacer transformación secuencia para Matriz2, como a continuación:
matrix2.postSkew(0.4f,0.4f);
matrix2.postSkew(0.5f/1.2f,0.5f/1.2f);
matrix2.postScale(1.2f, 1.2f);
matrix2.postTranslate(30, 30);
Per la documentación, M. preConcat (otro)> M '= M * otro, M.postConcat (otro)> M' = otro * M, Actualmente estoy probando algo de esto, pero parece que 'pre' establece el nuevo operador después de las que ya has hecho, y 'post' lo hace antes. Estoy escalando y luego traduciendo, necesita escalar y luego traducir porque la traducción está en coordenadas escaladas. Funciona si 'pre' pero no si 'posteo'. Esta notación me resulta confusa, así que avíseme si me equivoco. – Kratz
Tuve que doblar y triplicar los documentos, también. El esquema de nombres es bastante confuso, así que podría haberlo conseguido al revés. Sin embargo, no estoy seguro de entender * su * notación :) 'other * M' es un multiplicador izquierdo, y debe dar como resultado las transformaciones de' M' seguidas de 'otras'. Creo. – Cheezmeister
Obtuve esa notación desde aquí: http://developer.android.com/reference/android/graphics/Matrix.html#preConcat(android.graphics.Matrix) También encuentro confusa la denominación. – Kratz