Подтвердить что ты не робот

Элемент холста html5 и svg

Зачем нам нужен элемент html5 canvas, когда то же самое можно достичь через встроенный svg?

4b9b3361

Ответ 1

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

Ответ 2

SVG - это язык разметки для векторной графики и имеет DOM. Это позволяет легко изменять контент после его создания.

Холст - это поверхность для рисования, как MS Paint, без кнопки отмены. Вы не можете изменять контент. Вы можете только перекрасить его. Он очень эффективен, потому что браузеру не нужно обрабатывать полный DOM для изображения. И есть вероятность, что холст может обрабатывать 3D-чертеж в будущем.

Ответ 3

http://people.mozilla.com/~vladimir/xtech2006/ имеет хорошее сравнение.

С холстом вам не нужно иметь дело с DOM, что приводит к более быстрому и легкому написанию кода. SVG тоже беспорядок как спецификация...

Ответ 5

Вот объяснение того, как разбирать простой svg и рисовать его на холсте.

http://www.ikeralbeniz.net/2010/11/03/jugando-con-html5-canvas-y-svg-i/ http://www.ikeralbeniz.net/2010/11/04/jugando-con-html5-canvas-y-svg-ii/

в последующих сообщениях svg-парсер будет заполнен прозрачными и градиентными цветами

Ответ 7

Потому что нам тогда не нужно беспокоиться о том, какая поддержка такого внедрения; -)

Таким образом, фокус для разработчиков приложений - придерживаться стандартов и позволять дизайнерам клиентов делать то же самое. и, следовательно, избавить всех от беспокойства о плагинах, версиях, настройках безопасности и т.д.

Ответ 8

Это не технический ответ, но я думаю, что это правильный ответ.

Суть в том, что нам не нужны оба. Да, я знаю, что есть различия между векторной и растровой графикой и различными способами управления путями, объектами, анимациями и т.д. Между ними, но для конечного пользователя это все равно. Да, SVG сейчас немного мощнее из-за его более длительного существования, но с немного большей работой вы можете делать то же самое с Canvas.

Я считаю, что реальность Canvas является частью подавляющего люфта против самого XML в веб-разработке. Я считаю, что большинство веб-разработчиков, особенно тех, кто работает с ограниченным временем и ресурсами, за пределами "корпоративных" сред, не любят сложность XML. Canvas является частью набора предпочтительных технологий "только что сделайте-дела", так же как HTML5 предпочтительнее, чем XHTML, JSON предпочтительнее, чем XML, и даже YAML предпочтительнее, чем XML.

Я думаю, что идея похожа на философию * nix того, что у многих специальных инструментов есть что-то правильное и эффективное, а не один мега-инструмент, делающий много вещей. (Это также похоже на философию, которую придерживаются многие гонщики с фиксированным снаряжением, которые избегают невероятно точной и передовой технологии переключения передач для простоты одного прямого приводного механизма.)

Не поймите меня неправильно, я считаю, что XML - это невероятно мощная и блестящая технология, придуманная и разработанная блестящими людьми, чтобы стать высшим швейцарским армейским ножом в Интернете, программированием, настройкой, хранением данных и т.д.; но это не значит, что проще управлять и стилизовать ряд сложных путей, чем просто рисовать пиксели на.

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

Долгое время я хотел бы, чтобы SVG делал XML необязательным и переходил на более JSON-подобную структуру, которая проще манипулировать с помощью JavaScript, возможно даже превращаясь в векторный контекст Canvas. Это было бы лучшим решением для Интернета, на мой взгляд.