Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2013, 16:23
Новичок на форуме
Отправить личное сообщение для Trigger Посмотреть профиль Найти все сообщения от Trigger
 
Регистрация: 13.03.2013
Сообщений: 5

Рисование объектов на js
Добрый день.
Стоит задача сделать рисовалку объектов произвольной формы под тач.
Что бы объекты сохранялись и пользователь мог в любой момент тачем изменить форму.
В первую очередь под Вин8 и ИЕ10, но должно работать и на других платформах, т.е. нативные возможности винды или ие использовать нельзя.

1.Чем реализовать? Только SVG реально?
2.Подскажите какие нить статьи, главы книг, примеры.
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2013, 17:13
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

цитата: "Что бы объекты сохранялись". javascript не работает с файловой системой. если вы хотите подобное реализовать. то объектами могут быть простые элементы: прямая линия, прямоугольник, овал.. потом эти данные (тип изображения и его координаты, цвет и т.п.) передаются на сервер. а сервер уже генерит картинку и обратно отдает на клиент.. имхо это гемор))
Ответить с цитированием
  #3 (permalink)  
Старый 11.06.2013, 19:55
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

на первый взгляд canvas
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 12.06.2013, 01:11
Новичок на форуме
Отправить личное сообщение для Trigger Посмотреть профиль Найти все сообщения от Trigger
 
Регистрация: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 12.06.2013, 02:20
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Trigger
Как в canvas нарисовать, например, ромашку и объявить, что это один объект?
также, как сверстать меню и объявить, что это один объект

С другой стороны подходит и svg http://habrahabr.ru/post/157087/

Общее сравнение технологий Canvas и SVG
Простой графический движок: SVG vs Canvas
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 12.06.2013 в 02:25.
Ответить с цитированием
  #6 (permalink)  
Старый 12.06.2013, 20:24
Аватар для macdack
партизан, доктор
Отправить личное сообщение для macdack Посмотреть профиль Найти все сообщения от macdack
 
Регистрация: 29.06.2011
Сообщений: 221

цель программы точнее скажи - тогда и посоветовать можно
Ответить с цитированием
  #7 (permalink)  
Старый 13.06.2013, 12:08
Новичок на форуме
Отправить личное сообщение для Trigger Посмотреть профиль Найти все сообщения от Trigger
 
Регистрация: 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.
Ответить с цитированием
  #8 (permalink)  
Старый 13.06.2013, 23:18
Аватар для macdack
партизан, доктор
Отправить личное сообщение для macdack Посмотреть профиль Найти все сообщения от macdack
 
Регистрация: 29.06.2011
Сообщений: 221

просто всё

рисуется всё на канвасе
события от тачскрина или мышки используются для создания и модификации растровых фигур в "слоях" канваса.
слои можно трансформировать отключать и тд как в фотошопе

и площадь лекго считать простым подсчетом пикселей фигуры
Ответить с цитированием
  #9 (permalink)  
Старый 13.06.2013, 23:22
Аватар для macdack
партизан, доктор
Отправить личное сообщение для macdack Посмотреть профиль Найти все сообщения от macdack
 
Регистрация: 29.06.2011
Сообщений: 221

ну или еще проще поясню -

канвас - это прямоугольный экран с пикселями
пиксели ты можешь перекрашивать как угодно - каждым из них ты можешь управлять
итоговая твоя картинка в текущий момент времени это снимок всех твоих слоев-фигур
снимок переодически делается новый

все прикосновения отслеживаются и так можно сделать и трансформацию и рисование и перемещение...
Ответить с цитированием
  #10 (permalink)  
Старый 01.07.2013, 15:02
Новичок на форуме
Отправить личное сообщение для Trigger Посмотреть профиль Найти все сообщения от Trigger
 
Регистрация: 13.03.2013
Сообщений: 5

macdack, я Вас правильно понимаю, что каждая фигура в своем слое? И свойства фактически привязывать к слою (площадь, название и т.д.).

Особенность в том, что "области" изначально просто контур, без заливки! Далее по логике предполагается различные варианты штриховки+заливки.

Как тогда отслеживать само прикосновение? Попало оно в область существующей фигуры или же на пустой холст?

Еще вопрос про контур. Когда пользователь кликнул на область, она должна стать активной, визуально контур переливаться (или хотя бы двигающийся пунктир по контуру). Как понимаю, в канвасе нет инструментов работы с контурами. т.е. надо как-то хитро попиксельно его определять, и так же попиксельно вешать эффекты.

p.s.Повторю, что задача для меня новая. Буду благодарен за мануалы. Вообще про канвас и js вкурсе, также смотрел несколько примеров создания игрушек.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операционная Система на JS Icat Общие вопросы Javascript 3 17.04.2018 22:54
Сортировка JS объектов браузером по умолчанию estonets Общие вопросы Javascript 3 29.04.2014 17:08
Рисование окружности в JS gerons Элементы интерфейса 2 14.05.2013 06:37
рисование прямоугольника по движению мыши prizrak39 Events/DOM/Window 4 14.03.2013 15:36
Рисование и js Drakonee Элементы интерфейса 6 22.06.2010 23:51