|
|
|||||
Регистрация: Nov 2009
Сообщений: 176
|
преобразования в localToGlobal
Приветсвую!
Кто-то знает какие преобразования происходят в методе localToGlobal? Как там всё обрабатывается? Какой там код? |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Преобразования? О__о К счастью, никаких. Только вычисления. К координате х указанной точки прибавляются координаты х вызывающего объекта и всех его парентов, так же с координатой у.
Как бы так: var s1:Sprite = new Sprite(); super.addChild(s1); var s2:Sprite = new Sprite(); s1.addChild(s2); s1.x = 100; s1.y = 150; s2.x = 10; s2.y = 20; var p1:Point = new Point(50, 50); var p2:Point; var s:DisplayObject = s2; var sx:Number = 0; var sy:Number = 0; while (s.parent) { sx += s.x; sy += s.y; s = s.parent; } p2 = new Point(p1.x + sx, p1.y + sy);
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
а разве в localToGlobal не учитываются rotation всех объектов?
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
В смысле "никуда не денется"? Это у того, который повернули, никуда не денется. А у всех кто внутри еще как денется.
__________________
Reality.getBounds(this); |
|
|||||
Есть сцена, в ней контейнер, в нем спрайт. Спрайт сдвинули, а контейнер повернули. Простым суммированием тоже правильный перевод получится ?
В общем случае - для того, чтобы перевести из локальных координат в глобальные нужно умножить на инвертированную матрицу мира.
__________________
interplanety |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
тут еще проблема в пересчете координат в глобальные из-за разных углов поворота осей систем координат всех вложенных объектов, в общем случае, если угол между осями двух систем координат равен нулю, тогла можно и суммированием обойтись.
юзаю иногда такую формулу, a - угол между системами x0,y0 - сдвиг центра систем x1 =(x cos a + y sin a) + x0; x2 = (-x sin a + y cos a) +y0; |
|
|||||
Регистрация: Nov 2009
Сообщений: 176
|
а ещё когда на мувиклип применить скейл, то localToGlobal как то не точно преобразует координаты
|
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
x и y нужно умножать на scaleX и scaleY - соответственно
|
Часовой пояс GMT +4, время: 05:06. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|