Показать сообщение отдельно
Старый 21.12.2012, 13:02
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 6  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
Цитата:
Сообщение от tsarapkabel Посмотреть сообщение
Вы имеете ввиду mtrx.invert ?
Получаются вообще другие цифры. Если можно, уточните кодом.
Каким образом могут получиться другие цифры? Вот элементарный пример:

Код AS3:
// спрайт. поместим в точку 10,10
var TS:Sprite = new Sprite();
addChild(TS);
TS.x = 10;
TS.y = 10;
// начальная точка
var CP:Point = new Point(TS.x, TS.y);
trace(CP);   // (x=10, y=10)
// допустим переместили спрайт в точку 100,100
var M:Matrix = new Matrix();
M.tx = 100;
M.ty = 100;
trace(M);   // (a=1, b=0, c=0, d=1, tx=100, ty=100)
var M0:Matrix = TS.transform.matrix;
M0.concat(M);
TS.transform.matrix = M0;
// текущая точка
CP = new Point(TS.x, TS.y);
trace(CP);   // (x=110, y=110)
// Как получить начальную координату - взять обратную матрицу
var M1:Matrix = M.clone();
M1.invert();
trace(M1);   // (a=1, b=0, c=0, d=1, tx=-100, ty=-100)
// кординаты начальной точки
var PP:Point = M1.transformPoint(CP);
trace(PP);   // (x=10, y=10)
__________________
interplanety