![]() |
|
|
![]() |
![]() |
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
![]() Господа, есть ли способ повернуть объект с помощью свойства rotation, а затем вычислить его х и у координаты как будто бы он был повернут вокруг какой то точки?
Последний раз редактировалось Den_root; 13.02.2012 в 01:53. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
Цитата:
Последний раз редактировалось Den_root; 13.02.2012 в 02:19. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А так?
http://flasher.ru/forum/showthread.php?t=152684 Добавлено через 8 минут http://flasher.ru/forum/showthread.php?t=146622
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
Использовал вашу функцию из второй темы- увы но при множественном вращении объект постепенно смещается к точке вращения. С матрицами - погрешности, без них - тоже. Это заговор какой то!
![]() public static function pointRotate (object:DisplayObject, center:Point, angle:Number) : void { var r:Number = angle * Math.PI / 180; var s:Number = Math.sin(r); var c:Number = Math.cos(r); var dX:Number = object.x - center.x; var dY:Number = object.y - center.y; object.rotation += angle; object.x = center.x + dX * c - dY * s; object.y = center.y + dX * s + dY * c; } |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Нет, почему заговор)) Там такой алгоритм, она не для множественного вращения, а для одного поворота. Перед другим поворотом надо возвращать (в первой теме, про "центр", та же история была - просто я писал эти функции для проекта, где нужно было вот так)) Для динамического поворота надо возвращать объект обратно и задавать новый угол. Возврат в дефолт как раз добавлен в теме про центральное вращение. Ну объедините как-нибудь)))
Добавлено через 6 минут Вы происходящее представьте? Когда объект уже смещен и повернут, а Вы пытаетесь его снова повернуть вокруг той же точки – для него эта точка уже в другом месте, его система координат повернута и смещена относительно той точки.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
То есть если:
1. Создали объект 2. Повернули его 3.Переместили его в точку Х Для корректного вращения нужно: 1.Обнулить вращение 2.Переместить объект в кординаты на момент создания 3.Повернуть на новый, желаемый угол 4. Вернуть его в точку Х Я вас правильно понял? |
|
|||||
Цитата:
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
В таком случае, новой точкой будет (координаты начального положения с новым вращением)+(разница координат текущего положения объекта с нулевым вращением между координатами начального положения)?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:38. |
|
« Предыдущая тема | Следующая тема » |
Теги |
rotation |
Опции темы | |
Опции просмотра | |
|
|