Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   bitmapdata положение точки поворота (http://www.flasher.ru/forum/showthread.php?t=169280)

bookin 02.10.2011 00:24

bitmapdata положение точки поворота
 
можно ли указать в bitmapdata место положение точки относительно которой объект поворачивает и позиционируется на сцене ?

Wolsh 02.10.2011 02:19

BitmapData это массив чисел. Он как бы не позиционируется на сцене, поскольку не может на ней оказаться.
С "объект поворачивает" и "место положение точки" в подразумеваемом Вами контексте ситуация аналогичная. Массив это не визуальный объект.

bookin 02.10.2011 02:29

эмм ну я же могу задавать этому мосиву чисел при draw позиционирование, я чевот походу не догоняю)

fish_r 02.10.2011 02:45

Чевот не догоняете :), Можно изменить точку регистрации (а это так называется ) у DisplayObject-а (Sprite, MovieClip, Shape, Bitmap etc.) переопределив, например, акцессоры (get и set) x,y этого объекта.
Еще может быть полезно (если это как-то связанно с вращением) будет вот это почитать: http://www.flasher.ru/forum/blog.php?b=378.

bookin 03.10.2011 12:40

fish_r, спасибо за ссылку на статью но пишу на as3 и так понимаю там нет метода rotateAroundInternalPoint
ну либо я совсем дибил =)
проблема именна с врашением, точнее координатами обьект при вращении, имеется обект ось(точка регистрации) находится грубо говоря в центре обьекта, и создается bitmap у которого данная точка становится в 0,0 обьекта, позиционирование и поворот дублируется из первого обьекта, и при повороте копия смешается, потому появилась потребность сместить данную точку так же как в первом обьекте

Wolsh 03.10.2011 14:00

Сделайте пустой спрайт, положите туда битмап и сдвиньте его в спрайте на половину ширины и половину высоты влево вверх (в отрицательные координаты) – чтобы центр битмапа приходился на (0, 0) спрайта. И дальше обращайтесь со спрайтом так, как будто у него точка регистрации в центре. Задать ТР программно в том же смысле, как "руками" в ИДЕ не получится. Только так или тригонометрическими рассчетами, смещая битмап после поворота. Сто раз обсуждалось.

derhab 03.10.2011 14:06

Цитата:

Сообщение от bookin (Сообщение 1036324)
fish_r, спасибо за ссылку на статью но пишу на as3 и так понимаю там нет метода rotateAroundInternalPoint
ну либо я совсем дибил =)

метод есть:)

bookin 03.10.2011 14:07

Вложений: 1
прикрепил пример того что натворил, может кто тыкнет носом де я лох,

а по поводу сто раз обсуждалось можно линку если не сложно

SvetozarPNZ 03.10.2011 17:11

Цитата:

Сообщение от Wolsh (Сообщение 1036347)
или тригонометрическими рассчетами, смещая битмап после поворота.

Кстати, тригонометрический расчет - это костыльный способ? Можно им пользоваться желающим стать труфлешерами? :)

Wolsh 03.10.2011 18:08

Костыльный – это дополнительный контейнер. Вот он да, именно костыль. А тригонометрические рассчеты это единственный вариант решения, будете Вы использовать Матрицы или двигать "ручками" х и у – синусы и косинусы все-равно считать.


Часовой пояс GMT +4, время: 04:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.