Как интерактивно рисовать фигуры поверх холста HTML5?

Мне нужно нарисовать фигуру поверх холста HTML5 с помощью курсора мыши, например, квадрат или круг; и он должен иметь изменяемый размер, тогда, когда пользователь закончит рисовать, координаты фигуры внутри холста должны быть восстановлены.

Любые идеи о том, как я могу добиться этого с помощью JavaScript?

Спасибо


person rpabon    schedule 03.05.2012    source источник


Ответы (2)


Canvas определенно ничего не знает о природе объектов, которые вы рисуете. Это означает, что после вызова, скажем, метода arc, все, что вы получите, это просто набор пикселей на экране.

Здесь есть два подхода - вы можете написать свою собственную оболочку объектной модели поверх холста. Каждый раз, когда вы будете что-то рисовать, вы должны сохранять информацию об объекте — форму, координаты и все остальное, что необходимо. Это вполне приличный подход, но будьте осторожны - это не так тривиально, как можно подумать.

Второй подход — использовать SVG вместо холста и иметь объектную модель из коробки.

person shabunc    schedule 03.05.2012

Вас может заинтересовать библиотека javascript Paper.js. перефразируя вступление веб-сайта - «Это обеспечивает структуру векторной графики с использованием HTML 5 Canvas»

person J.Churchill    schedule 03.05.2012