Ищете пояснения к post / pre / set Translate (в объекте Matrix) и как их использовать - PullRequest
55 голосов
/ 20 ноября 2011

Документация довольно расплывчата относительно того, что на самом деле происходит при использовании этих методов.Может кто-нибудь объяснить, как на самом деле Matrix влияет на растровое изображение, для которого он установлен?Там они используют термин «конкатенация», но мне неясно, как этот термин применяется к координатным данным (ранее он использовался только для манипулирования строками).

1 Ответ

136 голосов
/ 20 ноября 2011

Методы set заменят текущую Матрицу новыми значениями, независимо от того, какая Матрица содержалась ранее. Метод pre и post будет применять новое преобразование до или после того, что содержит текущая матрица.

В этом примере вращение будет игнорироваться, так как мы используем метод set, а m будет содержать только перевод:

Матрица m = новая Матрица ();

m.setRotate (90);

m.setTranslate (100, 100);

В этом примере конечная матрица будет переводом, за которым следует поворот:

Матрица m = новая Матрица ();

m.setTranslate (100, 100);

m.postRotate (90);

В последнем примере финальная матрица будет вращением с последующим переводом:

Матрица m = новая Матрица ();

m.setTranslate (100, 100);

m.preRotate (90); * +1030 *

В этом (довольно длинном) посте есть дополнительная информация:

http://www.satyakomatineni.com/akc/display?url=displaynoteimpurl&ownerUserId=satya&reportId=2898

Надеюсь, это поможет.

...