[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вращение и перемещение объекта в canvas
Страницы: 1, 2
Zzepish
Я использую библию fabric.js . вращение происходит вокруг точки, по которой позиция объекта считается на координатной оси. Однако- мне надо, чтоб вращение было вокруг центра.
И ещё: я могу двигать объект по координатам. Но как мне его сдвинут в сторону (т.е. по какому-то градусу на определённую дистанцию)
DmitryOpalev
Могу подсказать только по перемещению.
Если для перемещения имеются аргументы: угол, расстояние, то тогда:
перемещение по x: cos(A)*D
перемещение по y: sin(A)*D
А - угол
D - расстояние

_____________
Курс валют
Zzepish
DmitryOpalev
Огромное вам спасибо.
Надо было все-же не забывать математику))
Zzepish
DmitryOpalev
Может на такое ответите: мне нужно узнать про столкновение объектов. Делал как тут http://m.habrahabr.ru/post/128438/ однако- независимо от того: было столкновение или нет, выдаёт, что было
DmitryOpalev
Zzepish
Какие объекты (фигуры) должны пересекаться?

_____________
Курс валют
Zzepish
DmitryOpalev
Пока-то прямоугольники.
Кстати! У меня перемещение работает криво. Почему-то объект двигается рандомно. Код кину скоро
Zzepish
Вот мои старания http://rghost.ru/57344260
Zzepish
Up
Zzepish
Up
Zzepish
DmitryOpalev
Вообщем- я разобрался. А- не угол. А- радиан
Zzepish
SDV
Погуглил. Не совсем оно. Дело в том, что я хочу запилить проворот от центральной точки, а не от угловой
sergeiss
Zzepish, я не совсем понял, что ты хочешь сделать. По-моему, ты изобретаешь велосипед (?). Для рисования повернутых объектов у канваса имеется специальный механизм. Ты даешь команду на "преобразование системы координат", затем рисуешь как обычно.

Допустим, ты рисуешь прямоугольник (10,10)-(35,83).

Сначала ты рисуешь его "просто так", но затем делаешь преобразование системы координат (поворот на определенный угол в определенную сторону), и рисуешь тот же прямоугольник (10,10)-(35,83). И - о чудо! - он оказывает в другом месте (с точки зрения пользователя). Также можно и масштабировать.
Гугли команды канваса translate(), scale(), rotate(). Заодно тут могут помочь save() и restore()...

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
SDV
у меня была аналогичная задача как-то, я делал через эти формулы.

начало отсчета координат (левый верхний угол) смещал в центр фигуры.
Zzepish
sergeiss
Дело в том, что я делаю через библиотеку fabricjs. Однвкоу меня ощущение, что придётся делать ротацию самому.

SDV
А как сделать это смещение?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.