Задать вопрос
Goo_man
@Goo_man
Основатель Template Robot

Программирование векторного слоя

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

То есть смысл примерно состоит в следующем: пользователю показывается этот слой, после чего пользователь масштабирует его до тех пор, пока блоки не примут определенный размер, чтобы пользователь мог рассмотреть их в данном масштабе (например 20 блоков на экране).

Пока что я рассматриваю в качестве технологии реализации данного интерактивного элемента JavaScript. Flash недопустим, по оговоренности в задаче. Еще есть мысли об использовании HTML5 Canvas, но пока что я не знаю его возможностей, так как никогда не работал с ним.

Кто что думает по поводу того, какую технологию выбрать для реализации? Может есть советы от тех, кто уже делал что-то подобное.
  • Вопрос задан
  • 2709 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Laplace
@Laplace
Ничего в этом не понимаю, но СЛЫШАЛ, что при использовании HTML5 Canvas работать с геометрией как с вектором не выйдет, т.к. объекты сразу растеризуются и все трансформации потом делаются уже с растром.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
А почему не SVG?

Canvas — очень низкоуровневое API, чтобы рисовать с его помощью векторы, придется написать немаленькую обертку (хотя, может, что-то уже есть).
Ответ написан
dom1n1k
@dom1n1k
Если использовать Canvas непосредственно, через его родной API — да, никакого вектора там не будет. Что в растр упало, то пропало.
Но существуют фреймворки-надстройки, которые в большей или меньшей степени дают векторные возможности.
Навскидку: Processing.js, MooTools Canvas Library, Gury, Paper.js, CanvasXpress, LibCanvas, jCanvaScript (авторы последних двух присутствуют на Хабре). Все они легко гуглятся. Посмотрите доки, может что-то и подойдет.
Кроме того, есть куча библиотек более узкого профиля, например рисование графиков-диаграмм или отображения карт по тиру Google Maps.

Если говорить, о SVG, то обучно вспоминают библиотеку Raphael (автор на Хабре есть). Хотя она, конечно, не единственная.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽