Изучение SVG, часть 2
Расширенная настройка SVG
Группировка, Определение, Градиент
Привет, ребята, помимо моей предыдущей статьи мы увидели, как создавать основные формы с помощью SVG. Расширяя эти основные формы, он может создавать ваши собственные творческие возможности SVG. В этой статье мы обсудим, как сделать SVG-творчество простым и интеллектуальным с помощью группировки и определения.
С помощью группировки и определения он может группировать набор элементов SVG. Это поможет повторно использовать группу или применить общие свойства к группе - давайте углубимся в концепции группировки и определения.
Перед этим я повторяю: если вы не имеете ни малейшего представления о том, что происходит с SVG или как рисовать базовые фигуры SVG, то я настоятельно рекомендую, пожалуйста, прочтите мою предыдущую статью Все, что вам нужно знать о фигурах SVG и приходите назад сюда.
Все, что вам нужно знать о фигурах SVG
Эта статья представляет собой практическое руководство по SVG. Здесь мы обсудим «как создавать различные формы и пути SVG. Если… medium.com »
Группировка
Он может группировать набор элементов SVG в контейнер с помощью элемента ‹g› ‹/g›. Преимущество группировки в том, что она позволяет применять свойства к группе, чтобы они отражались на элементах внутри группы. Еще одно преимущество группировки - это возможность очень легко повторно использовать группу, что означает, что она может создавать дубликаты сгруппированного набора элементов, чтобы вы могли пропустить дублирование кода.
Давайте разберемся с группировкой на нескольких примерах.
Здесь я рисую лист с прикрепленным черешком. Здесь есть два определения пути: одно для листа, а другое - для черешка. Я группирую эти два определения путей и создаю имя для всей группы, называемой «лист».
Вот как создать базовую группу. Теперь узнайте, что делать с этой группой.
Элемент «группа» поддерживает большой набор атрибутов. Изменение значений этих атрибутов приводит к его групповым элементам. Давайте посмотрим на некоторые основные часто используемые атрибуты в группе.
Наполнять
Заливка обычно используется для заливки всей группы элементов цветом. Кроме того, можно переопределить заливку на уровне группы, добавив атрибут заливки для отдельных элементов.
Вот результат для приведенного выше скрипта
В приведенном выше примере вы можете видеть, что в пути листа нет атрибутов заливки. Но для черешкового пути он заменяет темно-зеленую заливку (# 388E3C). Таким образом, на выходе вы можете видеть, что вся группа заменена заливкой группы (# de3e3e), но заливка не применялась к замещенной части, черешку.
Цвет
Цвет атрибута предназначен для определения цвета. Этот атрибут не будет напрямую применяться к подэлементам. Для применения определенного цвета необходимо установить значение как «текущий цвет» для таких атрибутов, как заливка, обводка, стоп-цвет и светлый цвет, чтобы оно заменило определенное значение цвета для атрибута.
Давайте посмотрим, как работает цвет, на нескольких примерах.
Здесь результат очень похож на результат предыдущего примера.
В примере вы можете видеть, что для группы определен цвет (# de3e3e) с помощью атрибута color. Этот цвет можно применить к заливке атрибута элементов группы с именем ‘currentcolor’. Он заменит значение «текущий цвет» определением атрибута цвета.
Непрозрачность
Он используется для настройки прозрачности дочерних элементов группы.
Инсульт и инсульт Дашаррей
Это необходимо для настройки свойств, связанных с штрихом, для элементов группы.
Перейдем к некоторым примерам.
Вот полный вывод для приведенного выше фрагмента кода.
В приведенном выше примере к нему применяется обводка фиолетового цвета шириной 3 и превращается в массив штрихов с шаблоном 6 2. Тире-массив означает, что первые 6 пикселей показывает линия, а следующие 2 пикселя линия становится скрытой.
Преобразовать
Теперь мы переходим к самому важному и полезному свойству элемента SVG. Преобразование является не только атрибутом группы, но также может применяться к элементам. С помощью преобразования он может выполнять различные преобразования элементов или группы, такие как поворот, перевод или смещение, наклон и масштабирование. Давайте подробно обсудим каждую из этих операций.
Перевести
Translate используется для смещения. Translate принимает два параметра: значение оси x и необязательное значение оси y. В зависимости от значения, присвоенного функции translate, она дополнительно смещает значения по осям x и y.
Syntax: translate(<x> [<y>]) x new position = x old position+ <x> y new position= y old position+ <y>
Применим перевод на нашем примере листа.
В приведенном выше примере группа «лист» переводит 500 единиц прямо из своего фактического местоположения. Это связано с вызовом преобразования translate (500,0).
Масштаб
Он используется для изменения размера группы или элемента. Он принимает два числа x масштабный коэффициент и масштабный коэффициент y. Если значение y не указано, предполагается, что оба значения одинаковы.
Syntax: scale(<x> [<y>]) Here <x> — Scaling factor for x-axis. <y> — Scaling factor for y-axis.
Давайте посмотрим, как работает масштабное преобразование на нашем примере листа.
В приведенном выше примере я применил два преобразования для листа группы. Во-первых, я перевел его позицию на 500 единиц вправо (что мы видели в предыдущем примере), также применил коэффициент масштабирования по x и y, равный 0,5, что уменьшит размер листа вдвое.
Повернуть
Поворот используется для поворота элемента или группы. Функция вращения принимает доступ к вращению, за которым следует дополнительная точка вращения.
Syntax: rotate(<a> [<x> <y>]) Here <a> — rotating angle <x> — x-axis displacement for the rotation point <y> — y-axis displacement for the rotation point
Перейдем к этому примеру.
В приведенном выше примере преобразование поворота на 30 градусов применено к точке (0,450). В результате вся группа листьев поворачивается на 30 градусов относительно точки (0,450).
SkewX и SkewY
Эти функции используются для наклона оси x или y на угол.
Syntax: skewX(<a>)//skew along the x-axis by a degree skewY(<a>)//skew along the y-axis by a degree
Давайте попробуем наклонить прямоугольник по осям x и y.
Здесь показаны два прямоугольника, один из которых наклонен по оси X на 10 градусов, а другой - по оси Y на 10 градусов.
Матрица
С помощью матричной функции он может выполнять комбинацию вышеупомянутых операций. Но это непросто, это немного сложно по сравнению с приведенными выше преобразованиями.
Матрица 3х3 выглядит следующим образом
a c e b d f -----> matrix(a,b,c,d,e,f) 0 0 1
нижняя строка для матрицы всегда одинакова, поэтому в матричной функции SVG принимают только 6 значений первых двух строк. Изменяя значения этих 6 параметров, он может выполнять все виды преобразований, которые мы обсуждали.
Ниже показано, как применить эти преобразования в матричной перспективе.
Translate 0 0 tx 0 1 ty 0 0 1 Syntax: matrix(1,0,0,1,tx,ty) Rotate cos(a) -sin(a) 0 sin(a) cos(a) 0 0 0 1 Syntax: matrix( cos(a), sin(a),-sin(a),cos(a),0,0 ) Scale sx 0 0 0 sy 0 0 0 1 Syntax: matrix(sx,0,0,sy,0,0) SkewX 1 tan(a) 0 0 1 0 0 0 1 Syntax: matrix(1,0,tan(a),1,0,0) SkewY Skew 1 0 0 tan(a) 1 0 0 0 1 Syntax: matrix(1,tan(a),0,1,0,0)
Давайте посмотрим на несколько примеров преобразования матриц.
В приведенном выше примере логика, лежащая в основе матрицы, состоит в том, чтобы повернуть группу на 30 градусов и сдвинуть группу на 400 единиц вправо. 0,5 - это значение sin 30, а 0,866 - значение cos 30. Основная проблема с матричным преобразованием заключается в понимании и реализации матричной логики, которая немного сложна по сравнению с другими преобразованиями.
Группировка многоразовая
Одно из главных преимуществ группировки - возможность многократного использования группы. Чтобы вам не захотелось снова переписывать группу. Он может создавать повторяющиеся группы и применять к ним различные преобразования. Это делается с помощью тега ‹use›.
Давайте посмотрим, как работает возможность многократного использования в группе, на нескольких примерах.
В приведенном выше фрагменте кода создается группа, называемая «двухлистной», путем объединения «листовой» группы и ее отражения. Отражение создается с помощью тега use. Кроме того, он повторно использовал группу «два листа» и сделал два дополнительных слоя листа.
Определение
Определение используется для определения графического объекта и может использовать более позднее время. Тег Def используется для определения графического объекта. Для отображения или использования объекта вы хотите использовать тег ‹use›, внутри которого необходимо передать URL-адрес определения.
Разница между группой и определением заключается в том, что в случае группировки объект уже отображается в представлении, но в определении он отображается только в том случае, если он использует синтаксис ‹use› путем ссылки на идентификатор объекта.
Определение в основном используется в случае определения объектов многократного использования и для создания градиентов. Давайте посмотрим на несколько примеров определения.
В приведенном выше примере вы можете видеть, что лист группы помещен в раздел определения (‹defs›). Таким образом, он не будет напрямую отображаться в представлении. Чтобы сделать его видимым, необходимо использовать тег ‹use›.
Другой вариант использования ‹defs› - создание градиента. Давайте посмотрим подробно, как создать градиент.
Градиент
Изображение становится таким совершенным только в том случае, если его цвет впечатляет. Цвета градиента сделают изображение таким красивым. Давайте посмотрим, как создать разные цвета градиента с помощью SVG.
Есть два вида градиентов. Линейный градиент и радиальный градиент
Линейный градиент
Линейный градиент используется для линейного определения градиента. Линейные градиенты обычно строятся с помощью тега ‹linearGradient›. Внутри тега ‹linearGradient› он использует элемент ‹stop› для упоминания положений каждого цвета градиента. Кроме того, SVG предоставляет n способов настройки линейного градиента с помощью атрибутов. Вот несколько необходимых атрибутов из него.
gradientTransform: с помощью этого атрибута можно применять преобразования к градиенту.
x1: координата x начальной точки линейного градиента.
x2: координата x конечной точки линейного градиента.
Радиальный градиент
Он используется для радиального определения градиента. Это реализуется с помощью тега ‹radialGradient›. Подобно линейному градиенту, атрибут ‹stop› используется для определения цвета градиента и его положения. Радиальный градиент также поддерживает несколько атрибутов для настройки. Отсюда вытекают важные атрибуты из него.
cx: определяет координату x конечной окружности радиального градиента.
cy: Определяет координату y конечной окружности радиального градиента.
fr: определяет радиус начальной окружности радиального градиента.
fx: определяет координату x начальной окружности радиального градиента.
fy: определяет координату y начальной окружности радиального градиента.
gradientTransform: этот атрибут обеспечивает дополнительные преобразования градиента.
Давайте посмотрим, как градиенты работают в SVG на некоторых примерах.
Результат приведенного выше фрагмента кода выглядит следующим образом.
Теперь в этой статье мы увидели, как сделать SVG красивее. Надеюсь, вы это хорошо понимаете.