Перейти к основному содержимому

SVG (Масштабируемая Векторная Графика)

SVG определяет векторную графику в XML, которую можно встраивать прямо в HTML-страницы. Графика SVG масштабируема, поэтому не теряет качества при увеличении или изменении размера, и SVG поддерживается всеми основными браузерами.


Что Такое SVG?

Ключевые моменты о SVG: расшифровывается как Scalable Vector Graphics (масштабируемая векторная графика); используется для определения векторной графики для веба; определяет графику в формате XML; каждый элемент и атрибут можно анимировать; это рекомендация PromptCookbook; и он интегрируется с другими стандартами, такими как CSS, DOM, XSL и JavaScript.


Элемент <svg>

Элемент <svg> — это контейнер для графики SVG. У SVG есть методы для рисования путей, прямоугольников, кругов, многоугольников, текста и многого другого.

Круг SVG

Круг с обводкой и заливкой.

Prompt
Страница с элементом SVG (100x100), рисующим круг с центром в (50,50) радиусом 40, зелёной обводкой 4px и жёлтой заливкой.
Вывод: полная HTML-страница

Прямоугольник SVG

Прямоугольник с обводкой и заливкой.

Prompt
Страница с элементом SVG (400x120), рисующим прямоугольник в позиции (10,10) размером 200x100, с красной обводкой 6px и синей заливкой.
Вывод: полная HTML-страница

Прямоугольник с прозрачностью и скруглёнными углами

Скруглённый, полупрозрачный прямоугольник.

Prompt
Страница с элементом SVG (400x180), рисующим прямоугольник со скруглёнными углами (rx и ry 20), красной заливкой, чёрной обводкой 5px и непрозрачностью 50%, стилизованным inline.
Вывод: полная HTML-страница

Звезда SVG

Пятиконечная звезда, нарисованная с помощью многоугольника.

Prompt
Страница с элементом SVG (300x200), рисующим многоугольник в виде пятиконечной звезды с заливкой цвета лайм, фиолетовой обводкой 5px и правилом заливки evenodd.
Вывод: полная HTML-страница

Эллипс с градиентом и текстом

Эллипс, залитый градиентом, с текстом поверх.

Prompt
Страница с элементом SVG (500x130), рисующим эллипс, залитый линейным градиентом от жёлтого к красному, плюс белый текст "SVG" поверх него, с резервным сообщением для браузеров без поддержки встроенного SVG.
Вывод: полная HTML-страница

Различия Между SVG и Canvas

SVG — это язык для описания 2D-графики в XML, тогда как Canvas рисует 2D-графику «на лету» с помощью JavaScript. Поскольку SVG основан на XML, каждый элемент присутствует в DOM SVG, поэтому вы можете прикреплять обработчики событий JavaScript к фигурам. Каждая фигура SVG запоминается как объект, поэтому при изменении её атрибутов браузер автоматически перерисовывает её. Canvas, напротив, рисуется попиксельно и забывает графику после отрисовки, поэтому изменение её положения означает перерисовку всей сцены.


Сравнение SVG и Canvas

SVG не зависит от разрешения, поддерживает обработчики событий, имеет хороший рендеринг текста, но может быть медленным при сложной графике и не подходит для игр. Canvas зависит от разрешения, не поддерживает обработчики событий, имеет плохой рендеринг текста, позволяет сохранить результат как .png или .jpg и хорошо подходит для графически насыщенных игр.