11.06.2013, 16:23
|
Новичок на форуме
|
|
Регистрация: 13.03.2013
Сообщений: 5
|
|
Рисование объектов на js
Добрый день.
Стоит задача сделать рисовалку объектов произвольной формы под тач.
Что бы объекты сохранялись и пользователь мог в любой момент тачем изменить форму.
В первую очередь под Вин8 и ИЕ10, но должно работать и на других платформах, т.е. нативные возможности винды или ие использовать нельзя.
1.Чем реализовать? Только SVG реально?
2.Подскажите какие нить статьи, главы книг, примеры.
|
|
11.06.2013, 17:13
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
цитата: "Что бы объекты сохранялись". javascript не работает с файловой системой. если вы хотите подобное реализовать. то объектами могут быть простые элементы: прямая линия, прямоугольник, овал.. потом эти данные (тип изображения и его координаты, цвет и т.п.) передаются на сервер. а сервер уже генерит картинку и обратно отдает на клиент.. имхо это гемор))
|
|
11.06.2013, 19:55
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
на первый взгляд canvas
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
12.06.2013, 01:11
|
Новичок на форуме
|
|
Регистрация: 13.03.2013
Сообщений: 5
|
|
skrudjmakdak,
Мне нужно именно объекты. Определять/вычислять свойства площадь, периметр фигуры, дополнительные пользовательские. localStorage не пойдет?
js+php+mysql?
nerv_,
Как в canvas нарисовать, например, ромашку и объявить, что это один объект?
p.s.Интересный графический редактор чисто на хтмл5 http://aviary.com/web через дивы все сделано
Цитата:
|
<div id="text_overlay-dd46b69e" class="avpw_selection_overlay avpw_selection_overlay_dragonly" style="left: 78.1843px; top: 36.1843px; width: 119.631px; height: 119.631px; z-index: 3; transform: rotate(314deg);">
|
Последний раз редактировалось Trigger, 12.06.2013 в 01:58.
|
|
12.06.2013, 20:24
|
|
партизан, доктор
|
|
Регистрация: 29.06.2011
Сообщений: 221
|
|
цель программы точнее скажи - тогда и посоветовать можно
|
|
13.06.2013, 12:08
|
Новичок на форуме
|
|
Регистрация: 13.03.2013
Сообщений: 5
|
|
macdack,
Раскрою чуть подробней.
Весь экран - холст.
1 кнопка "Рисование" при тапе по кнопке активация/дективация режима рисования.
В режиме рисования
При тапе на пустом месте экрана (на холсте) появляется область "круг" с параметрами (название: Объект_1, площадь: 10 у.е. (условных единиц)).
При приведении пальцем изнутри области во вне область расширяется.
Пример: пользователь провел вправо, далее из центра получившийся полосы вверх, вниз, в диагонали. Должен получиться единый объект "ромашка", площадь предположим 100.
При тапе вне области появляется новая область с "круг" с параметрами (название: Объект_2, площадь: 10 у.е.).
Пользователь выходит из режима рисования (тап по кнопке).
Тап по "ромашке". Показывает параметры (название: Объект_1, площадь: 100 у.е.).
Тап по названию. Меняет название с "Объект_1" на "Ромашка"
Также должно быть доступно масштабирование (сведение/разведение пальцев на холсте).
! Новые объекты должны создаваться (рисоваться) с учетом масштаба.
Пример: При масштабе 0.1 площадь исходного круга 100 у.е.
Должна сохранятся история изменений с привязкой по времени/лог.
т.е. должна быть возможно узнать, что "Ромашку" нарисовали 13.06.2013 в 12:10:00, "Объект_2" через 30 секунд, "Объект_3" через 1 день.
p.s.Понимаю, что может быть множество вопросов, сейчас интересует именно как рисовать произвольные объекты, что бы их можно было масштабировать, двигать.
Последний раз редактировалось Trigger, 13.06.2013 в 12:11.
|
|
13.06.2013, 23:18
|
|
партизан, доктор
|
|
Регистрация: 29.06.2011
Сообщений: 221
|
|
просто всё
рисуется всё на канвасе
события от тачскрина или мышки используются для создания и модификации растровых фигур в "слоях" канваса.
слои можно трансформировать отключать и тд как в фотошопе
и площадь лекго считать простым подсчетом пикселей фигуры
|
|
13.06.2013, 23:22
|
|
партизан, доктор
|
|
Регистрация: 29.06.2011
Сообщений: 221
|
|
ну или еще проще поясню -
канвас - это прямоугольный экран с пикселями
пиксели ты можешь перекрашивать как угодно - каждым из них ты можешь управлять
итоговая твоя картинка в текущий момент времени это снимок всех твоих слоев-фигур
снимок переодически делается новый
все прикосновения отслеживаются и так можно сделать и трансформацию и рисование и перемещение...
|
|
01.07.2013, 15:02
|
Новичок на форуме
|
|
Регистрация: 13.03.2013
Сообщений: 5
|
|
macdack, я Вас правильно понимаю, что каждая фигура в своем слое? И свойства фактически привязывать к слою (площадь, название и т.д.).
Особенность в том, что "области" изначально просто контур, без заливки! Далее по логике предполагается различные варианты штриховки+заливки.
Как тогда отслеживать само прикосновение? Попало оно в область существующей фигуры или же на пустой холст?
Еще вопрос про контур. Когда пользователь кликнул на область, она должна стать активной, визуально контур переливаться (или хотя бы двигающийся пунктир по контуру). Как понимаю, в канвасе нет инструментов работы с контурами. т.е. надо как-то хитро попиксельно его определять, и так же попиксельно вешать эффекты.
p.s.Повторю, что задача для меня новая. Буду благодарен за мануалы. Вообще про канвас и js вкурсе, также смотрел несколько примеров создания игрушек.
|
|
|
|