Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задача: поворот движущего сложного объекта canvas (https://javascript.ru/forum/misc/29176-zadacha-povorot-dvizhushhego-slozhnogo-obekta-canvas.html)

DenBraun 18.06.2012 16:26

Задача: поворот движущего сложного объекта canvas
 
Всем привет, у меня возникла проблема с canvas, помогите плиз решить.
Вообщем есть сложный объект размером 30х30рх, он постоянно перерисовывается чтоб создать эфект движения, то есть у него постоянно меняются координаты Х и Y. Мне необходимо его повернуть например под углом 90", но при этом координатная сетка должна остаться в том же положении.
Я так понимаю это можно сделать с помощью метода setTransform, но все мои эксперементы пока безуспешны, либо сильно искривляет объект либо смещает оси координат. Если есть у кого решение дайте плиз буду очееень благодарен):)

Octane 18.06.2012 16:31

http://javascript.ru/forum/project/1...te-center.html

Deff 18.06.2012 16:34

Цитата:

Сообщение от DenBraun
он постоянно перерисовывается чтоб создать эфект движения, то есть у него постоянно меняются координаты Х и Y.

Ксать зачастую занчительно шустрее анимировать положения встроенного над основным canvas мелкого дополнительного(если форма объекта легко обрамляется в круг или прямоугольник)

DenBraun 18.06.2012 16:37

метод rotate() к сожалению тут не подходит так как смещается ось координат

DenBraun 18.06.2012 16:42

Цитата:

Ксать зачастую занчительно шустрее анимировать положения встроенного над основным canvas мелкого дополнительного(если форма объекта легко обрамляется в круг или прямоугольник)
я так понимаю вы имеете в виду метод createImageData() или создание еще одного элемента canvas

Deff 18.06.2012 16:53

Цитата:

Сообщение от DenBraun
или создание еще одного элемента canvas

Если есть большое canvas статического поля (ну не совсем статического - эффекты на нём можно отобразить) динамический canvas можно отрендить сcs3 типо анимация, инерционность

DenBraun 18.06.2012 17:02

Цитата:

отрендить сcs3
я так тоже уже думал сделать, но потом отказался так как не хватает еще пока в CSS переменных, этот объект - это моб в игре отрисованный примитивами и анимирован, одновременно их на карте может находиться до 100шт, плюс там у меня еще завязана логика на них, то есть поиск оптимального пути и т.д.
Перекопав кучу материала я пришел к выводу что единственная норм возможность повернуть моба это метод setTransform(), с помощью него можно наложить хитрую матрицу на сохраненый объект, таким образом чтоб не сместить ось координат.

DenBraun 18.06.2012 17:05

Можно еще покапаться с методом createImageData(), но это по пиксельная трансформация, то есть можно два раза перерисовывать моба, но это уже лишняя нагрузка


Часовой пояс GMT +3, время: 16:24.