Заливка цветом может применяться к фигурам, тексту и элементам Path. При указании цвета допустимы именованные названия (см. Приложение 1), а также RGB - код в десятичной или шестнадцатеричной формах. В табл. 5.1 приводится описание основных атрибутов заливки.
| № | Название |
|---|---|
| 5.1.1 | fill |
| Описание | |
| Заливка цветом внутренней части фигуры или текста | |
| Диапазон значений | |
| Именованные названия, десятичный или шестнадцатеричный индекс цвета | |
| Значение по умолчанию | |
| Черный (black) | |
| № | Название |
| 5.1.2 | fill-opacity |
| Описание | |
| Прозрачность заливки | |
| Диапазон значений | |
Число между 0 (полная прозрачность) и 1 (полная непрозрачность) |
|
| Значение по умолчанию | |
1 |
|
| № | Название |
| 5.1.3 | fill-rule |
| Описание | |
| Режим заливки фигуры, при которой остаются пустые (незакрашенные) области. | |
| Диапазон значений | |
- полная заливка. evenodd - заливка с пустыми областями. |
|
| Значение по умолчанию | |
|
Ранее мы пользовались при заливке только атрибутом fill. Следовательно, мы имели дело с полностью непрозрачными объектами, заполняемыми цветом полностью. В табл. 5.2 приводятся примеры использования атрибутов заливки.
| № | Код | Вид в браузере |
|---|---|---|
| 5.2.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill1.svg
</desc>
<rect x="0" y="25" width="210" height="50"></rect>
<rect x="10" y="0" width="10" height="100"
fill="red" fill-opacity="0.1"></rect>
<rect x="30" y="0" width="10" height="100"
fill="red" fill-opacity="0.2"></rect>
<rect x="50" y="0" width="10" height="100"
fill="red" fill-opacity="0.3"></rect>
<rect x="70" y="0" width="10" height="100"
fill="red" fill-opacity="0.4"></rect>
<rect x="90" y="0" width="10" height="100"
fill="red" fill-opacity="0.5"></rect>
<rect x="110" y="0" width="10" height="100"
fill="red" fill-opacity="0.6"></rect>
<rect x="130" y="0" width="10" height="100"
fill="red" fill-opacity="0.7"></rect>
<rect x="150" y="0" width="10" height="100"
fill="red" fill-opacity="0.8"></rect>
<rect x="170" y="0" width="10" height="100"
fill="red" fill-opacity="0.9"></rect>
<rect x="190" y="0" width="10" height="100"
fill="red" fill-opacity="1"></rect>
</svg>
|
![]() |
| Описание | ||
| Полоски с различными значениями прозрачности. | ||
| № | Код | Вид в браузере |
| 5.2.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill2.svg
</desc>
<rect x="0" y="25" width="210" height="50"></rect>
<rect x="10" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.1"></rect>
<rect x="30" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.2"></rect>
<rect x="50" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.3"></rect>
<rect x="70" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.4"></rect>
<rect x="90" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.5"></rect>
<rect x="110" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.6"></rect>
<rect x="130" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.7"></rect>
<rect x="150" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.8"></rect>
<rect x="170" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.9"></rect>
<rect x="190" y="0" width="10" height="100"
style="fill:red; fill-opacity:1"></rect>
</svg>
|
![]() |
| Описание | ||
| Полоски с различными значениями прозрачности, оформление при помощи атрибута style. | ||
| № | Код | Вид в браузере |
| 5.2.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill3.svg
</desc>
<rect x="0" y="25" width="210" height="50" ></rect>
<g style="fill:red; fill-opacity:0.6">
<rect x="10" y="0" width="10" height="100"></rect>
<rect x="30" y="0" width="10" height="100"></rect>
<rect x="50" y="0" width="10" height="100"></rect>
<rect x="70" y="0" width="10" height="100"></rect>
<rect x="90" y="0" width="10" height="100"></rect>
<rect x="110" y="0" width="10" height="100"></rect>
<rect x="130" y="0" width="10" height="100"></rect>
<rect x="150" y="0" width="10" height="100"></rect>
<rect x="170" y="0" width="10" height="100"></rect>
<rect x="190" y="0" width="10" height="100"></rect>
</g>
</svg>
|
![]() |
| Описание | ||
| Задание единой прозрачности для группы элементов. | ||
| № | Код | Вид в браузере |
| 5.2.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill4.svg
</desc>
<polygon fill-rule="nonzero" fill="red" stroke="black"
points="50,6 18,86 98,38 2,38 82,86"/>
<polygon fill-rule="evenodd" fill="red" stroke="black"
points="151,6 119,86 199,38 103,38 183,86"/>
</svg>
|
![]() |
| Описание | ||
| Режимы заливки - полная и с пустыми областями. | ||
| № | Код | Вид в браузере |
| 5.2.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill5.svg
</desc>
<polygon style="fill-rule: nonzero; fill: red; stroke: black;"
points="50,6 18,86 98,38 2,38 82,86"/>
<polygon style="fill-rule: evenodd; fill: red; stroke: black;"
points="151,6 119,86 199,38 103,38 183,86" />
</svg>
|
![]() |
| Описание | ||
Режимы заливки - полная и с пустыми областями, оформление при помощи атрибута style. |
||
| № | Код | Вид в браузере |
| 5.2.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill6.svg
</desc>
<!--Фоновый черный прямоугольник-->
<rect x="0" y="25" width="250" height="250" ></rect>
<!--Непрозрачный текст-->
<g font-family="Arial" font-size="40" stroke="white"
stroke-width="1">
<text x="10" y="100" fill="red">
Red
</text>
<text x="10" y="150" fill="yellow">
Yellow
</text>
<text x="10" y="200" fill="green">
Green
</text>
</g>
<!--Полупрозрачный текст-->
<g style="fill:red; fill-opacity:0.6">
<g font-family="Arial" font-size="40" stroke="white"
stroke-width="1">
<text x="135" y="100" fill="red">
Red
</text>
<text x="135" y="150" fill="yellow">
Yellow
</text>
<text x="135" y="200" fill="green">
Green
</text>
</g>
</g>
</svg>
|
![]() |
| Описание | ||
| Полностью непрозрачный и частично прозрачный текст на черном фоне. Для оформления текста используются группы. | ||
Линейная градиентная заливка предназначена для получения плавного цветового перехода в направлении, заданной прямой. Элемент linearGradient определяется в области defs, а затем он может быть применен для произвольной фигуры в качестве заливки:
<defs>
<linearGradient id="MyGradient">
<stop offset="30%" stop-color="red"/>
<stop offset="70%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150" fill="url(#MyGradient)"/>
Внутри элементов stop задаются цвета градиента в атрибутах stop-color и граница области каждого из цветов в атрибутах offset (рис. 5.1):
(рис 5.1) Определение linearGradient Атрибут offset определяет области покрытия исходных цветов и формируемого ими промежуточного. Так, на рисунке первый цвет занимает 30%, второй цвет также 30% (100-70=30), а область градиента занимает всю остальную часть, т.е. 40%. В табл. 5.3 приводится примеры с различными значениями атрибута offset.
| № | Код | Вид в браузере |
|---|---|---|
| 5.3.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset1.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
Атрибуты offset с первыми предельными граничными значениями - 0 и 100%. |
||
| № | Код | Вид в браузере |
| 5.3.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset2.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="20%" stop-color="red"/>
<stop offset="80%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 20 и 80%. Хорошо заметны области чистых цветов. |
||
| № | Код | Вид в браузере |
| 5.3.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset3.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="30%" stop-color="red"/>
<stop offset="70%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 30 и 70%. |
||
| № | Код | Вид в браузере |
| 5.3.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset4.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="50%" stop-color="red"/>
<stop offset="50%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со вторыми предельными граничными значениями - 50 и 50%. В этом случае градиент вырождается в две области с чистыми цветами. |
||
В рассмотренных случая мы видели направление градиента только в одном направлении - горизонтальном. Для произвольного направления вводится набор атрибутов x1, x2, y1, y2 следующим образом:
<defs>
<linearGradient id="MyGradient" x1="0%" y1="0%" x2="100%" y2="100%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150" fill="url(#MyGradient)" />
В этом случае градиент будет направлен из верхнего левого в правый нижний угол прямоугольника (рис. 5.2):
(рис 5.2) Направление градиентаАтрибуты x1, y1 и x2, y2 задают координаты двух точек, в направлении которых будет направлен градиент. При этом для углов области градиента значения атрибутов определяются указанным на рисунке образом. Можно провести аналогию между значениями в процентах и обычными координатами - оси направлены совершенно одинаково. В табл. 5.4 приведены различные предельные случаи направления градиента.
| № | Код | Вид в браузере |
|---|---|---|
| 5.4.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection1.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="0%" x2="100%" y2="100%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Направление градиента из верхнего левого в правый нижний угол. | ||
| № | Код | Вид в браузере |
| 5.4.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection2.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="0%" x2="100%" y2="0%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Обычное направление градиента, с которым мы уже сталкивались ранее (см. linearGradientoffset1. |
||
| № | Код | Вид в браузере |
| 5.4.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection3.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Направление градиента сверху вниз. | ||
| № | Код | Вид в браузере |
| 5.4.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection4.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="100%" y1="0%" x2="0%" y2="0%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Направление градиента слева направо. В принципе, такое же расположение можно получить, если поменять местами цвета градиента. | ||
| № | Код | Вид в браузере |
| 5.4.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection5.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="100%" x2="0%" y2="0%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Направление градиента снизу вверх. | ||
Для других, промежуточных значений, можно изменять значения атрибутов в диапазоне от 0 до 100%.
Внутри определения градиента можно помещать несколько цветов:
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150" fill="url(#MyGradient)"/>
Таким образом, получается серия цветов, напоминающая радугу (спектр). В табл. 5.5 приводятся различные примеры использования градиента.
| № | Код | Вид в браузере |
|---|---|---|
| 5.5.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome1.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Градиент содержащий серию цветов. | ||
| № | Код | Вид в браузере |
| 5.5.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome2.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<circle cx="75" cy="75" r="75"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Применение градиента к окружности. | ||
| № | Код | Вид в браузере |
| 5.5.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome3.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<rect x="10" y ="5" width="130" height="90"
fill="url(#MyGradient)"/>
<circle cx="35" cy="120" r="25"
fill="url(#MyGradient)" />
<circle cx="115" cy="120" r="25"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Применение градиента к нескольким фигурам. Распределение цветов масштабируется в зависимости от размеров фигуры. | ||
| № | Код | Вид в браузере |
| 5.5.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome4.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<text x="10" y="100" font-family="Arial Bold"
font-size="90" stroke="black" stroke-width="1"
fill="url(#MyGradient)">
Текст
</text>
</svg>
|
![]() |
| Описание | ||
| Заливка градиентом текста. | ||
| № | Код | Вид в браузере |
| 5.5.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome5.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="100%" stop-color="white"
stop-opacity="0"/>
</linearGradient>
</defs>
<rect x="0" y="10" width="150" height="130"></rect>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибут stop-opacity позволяет задавать прозрачность цвета градиента. |
||
Радиальная градиентная заливка позволяет получать плавное изменение цвета в направлении от центра или к центру окружности.
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
Определения радиального и radialGradient. Графически распределение цвета выглядит так (рис. 5.3):
(рис 5.3) Определение radialGradientАтрибут offset в данном случае отсчитывается в направлении радиуса окружности. В табл. 5.6 приводятся примеры с различными значениями этого атрибута.
| № | Код | Вид в браузере |
|---|---|---|
| 5.6.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset1.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset с первыми предельными граничными значениями - 0 и 100%. |
||
| № | Код | Вид в браузере |
| 5.6.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset2.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="yellow"/>
<stop offset="100%" stop-color="red"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset с первыми предельными граничными значениями - 0 и 100%. Цвета градиента поменяли местами. |
||
| № | Код | Вид в браузере |
| 5.6.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset3.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="20%" stop-color="red"/>
<stop offset="80%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 20 и 80%. Как и в случае |
||
| № | Код | Вид в браузере |
| 5.6.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset4.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="30%" stop-color="red"/>
<stop offset="70%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 30 и 70%. |
||
| № | Код | Вид в браузере |
| 5.6.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset5.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="50%" stop-color="red"/>
<stop offset="50%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со вторыми предельными граничными значениями - 50 и 50%. В этом случае градиент вырождается в две радиальные области с чистыми цветами. |
||
Для элемента radialGradient можно задать область распространения непосредственно в его определении, при помощи атрибутов cx, cy и r:
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)"/>
В этом случае область градиента будет локализована в центре фигуры в окружности с радиусом 25% (рис. 5.4)
(рис 5.4) Локализация радиального градиента Применять набор этих свойств удобно в случае заливки произвольных, не сферических фигур - радиальная окружность будет присутствовать в области однородного цвета. В табл. 5.7 приводятся примеры использования этих атрибутов.
| № | Код | Вид в браузере |
|---|---|---|
| 5.7.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize1.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Значения атрибутов совпадают с принятыми по умолчанию (см. radialGradientoffset1. |
||
| № | Код | Вид в браузере |
| 5.7.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize2.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Градиент локализован в окружности с радиусом 25% | ||
| № | Код | Вид в браузере |
| 5.7.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize3.svg
</desc>
<defs>
<radialGradient id="MyGradient1">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
<radialGradient id="MyGradient2"
cx="50%" cy="50%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<rect height="150" width="150" x="0" y="0"
fill="url(#MyGradient1)"/>
<rect height="150" width="150" x="0" y="150"
fill="url(#MyGradient2)"/>
<!--Вспомогательная линия-->
<line x1="0" y1="150" x2="150" y2="150"
stroke="red" stroke-width="2"/>
</svg>
|
![]() |
| Описание | ||
| Заливка прямоугольника |
||
| № | Код | Вид в браузере |
| 5.7.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize4.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="75%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Увеличение площади распространения градиента позволяет выделить его определенную часть. | ||
| № | Код | Вид в браузере |
| 5.7.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize5.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="25%" cy="25%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание фигурой изображение градиента, локализованного в верхней левой части. | ||
| № | Код | Вид в браузере |
| 5.7.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize6.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="75%" cy="75%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание фигурой изображение градиента, локализованного в правой нижней части. | ||
В последних двух примерах заметно"обрезанное" расположение области градиента. Для получения эффекта светового блика на фигуре также используется fx и fy, которые подстраивают распространение градиента под геометрические размеры фигуры (табл. 5.8).
| № | Код | Вид в браузере |
|---|---|---|
| 5.8.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientF1.svg
</desc>
<defs>
<radialGradient id="MyGradient"
fx="25%" fy="25%">
<stop offset="0%" stop-color="white"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Эффект светового блика в левой верхней части фигуры. | ||
| № | Код | Вид в браузере |
| 5.8.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientF2.svg
</desc>
<defs>
<radialGradient id="MyGradient"
fx="75%" fy="75%">
<stop offset="0%" stop-color="white"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Эффект светового блика в правой нижней части фигуры. | ||
Как и в случае stop-opacity (табл. 5.9)
| № | Код | Вид в браузере |
|---|---|---|
| 5.9.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome1.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Заливка окружности |
||
| № | Код | Вид в браузере |
| 5.9.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome2.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Заливка прямоугольника |
||
| № | Код | Вид в браузере |
| 5.9.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome3.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<rect x="10" y ="5" width="130" height="90"
fill="url(#MyGradient)"/>
<circle cx="35" cy="120" r="25"
fill="url(#MyGradient)"/>
<circle cx="115" cy="120" r="25"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Заливка нескольких фигур |
||
| № | Код | Вид в браузере |
| 5.9.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome4.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<text x="10" y="100"
font-family="Arial Bold" font-size="90"
stroke="black" stroke-width="1"
fill="url(#MyGradient)">
Текст
</text>
</svg>
|
![]() |
| Описание | ||
| Заливка текста |
||
| № | Код | Вид в браузере |
| 5.9.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome5.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="100%" stop-color="white"
stop-opacity="0"/>
</radialGradient>
</defs>
<rect x="0" y="60"
width="150" height="30" ></rect>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| № | Код | Вид в браузере |
| 5.9.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome6.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="white"
stop-opacity="0"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<rect x="0" y="60" width="150" height="30"></rect>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
Элемент pattern предназначен для создания мозаичной графической текстуры, которая может применяться в качестве заливки или контура фигуры. Определение
<pattern id="MyPattern" x="coordinate" y="coordinate"
width="length" height="length"
patternUnits="userSpaceOnUse | objectBoundingBox" >
<!-Графическое содержимое-->
</pattern>
Элемент pattern не входит в секцию defs, однако он не может быть отображен в документе непосредственно. Для его включения обязательно требуется фигура с установленными свойствами или fill. В табл. 5.10 приводятся описание атрибутов этого элемента.
| № | Название |
|---|---|
| 5.10.1 | x, y |
| Описание | |
| Координаты верхнего левого угла графического элемента, который служит мозаикой в паттерне. | |
| № | Название |
| 5.10.2 | width, height |
| Описание | |
| Ширина и высота площади, которую занимает отдельный элемент мозаики. Визуально этот параметр определяет разреженность или уплотненность |
|
| № | Название |
| 5.10.3 | patternUnits |
| Описание | |
Определение координатной системы для атрибутов x, y, width и height. Возможны следующие значения:userSpaceOnUse - атрибуты x, y, width и height определяются в системе координат той фигуры, для которой будет применяться objectBoundingBox - атрибуты x, y, width и height определяются в системе координат самого patternUnits не указан, то по умолчанию принимается значение objectBoundingBox. |
В табл. 5.11 приводятся примеры использования
| № | Код | Вид в браузере |
|---|---|---|
| 5.11.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern1.svg
</desc>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<circle cx="11" cy="11" r="10" fill="red" stroke="black"/>
</pattern>
<rect x="2" y="2" width="146" height="146"
fill="url(#MyPattern)" stroke="black" stroke-width ="2"/>
</svg>
|
![]() |
| Описание | ||
Графическое содержимое circle. |
||
| № | Код | Вид в браузере |
| 5.11.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern2.svg
</desc>
<pattern id="MyPattern" x="0" y="0" width="40" height="40"
patternUnits="userSpaceOnUse">
<circle cx="11" cy="11" r="10" fill="red" stroke="black" />
</pattern>
<rect x="2" y="2" width="146" height="146"
fill="url(#MyPattern)" stroke="black" stroke-width ="2" />
</svg>
|
![]() |
| Описание | ||
По сравнению с предыдущим примером, здесь увеличены значения атрибутов width и height в определении |
||
| № | Код | Вид в браузере |
| 5.11.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern3.svg
</desc>
<pattern id="MyPattern" x="20" y="10" width="40" height="40"
patternUnits="userSpaceOnUse">
<circle cx="11" cy="11" r="10" fill="red" stroke="black" />
</pattern>
<rect x="2" y="2" width="146" height="146" fill="url(#MyPattern)"
stroke="black" stroke-width ="2" />
</svg>
|
![]() |
| Описание | ||
Смещение верхней точки заполнителя при изменении атрибутов x и y внутри |
||
| № | Код | Вид в браузере |
| 5.11.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern4.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="20" height = "20" fill="url(#MyGradient)"/>
</pattern>
<ellipse cx="75" cy="75" rx="75" ry="50" fill="url(#MyPattern)"
stroke="black" stroke-width ="2" />
</svg>
|
![]() |
| Описание | ||
| В качестве графического содержимого |
||
| № | Код | Вид в браузере |
| 5.11.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример pattern5.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="20" height = "20" fill="url(#MyGradient)" />
</pattern>
<ellipse cx="75" cy="75" rx="75" ry="50" fill="magenta"
stroke="url(#MyPattern)" stroke-width ="10" />
</svg>
|
![]() |
| Описание | ||
Применение элемента pattern в качестве контура фигуры. |
||
| № | Код | Вид в браузере |
| 5.11.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример pattern6.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="20" height = "20" fill="url(#MyGradient)"/>
</pattern>
<text x="10" y="100" font-family="Arial Bold" font-size="90"
stroke="black" stroke-width="1" fill="url(#MyPattern)">
Текст
</text>
</svg>
|
![]() |
| Описание | ||
| Заполнение |
||
Применение
Оформление фигуры определяется не только ее заливкой, но и контуром. В первых лекциях мы определяли цвет заливки и ее толщину. Теперь рассмотрим другие атрибуты контура, доступные в
| № | Название |
|---|---|
| 5.12.1 | |
| Описание | |
| Рисование контура фигуры | |
| Диапазон значений | |
<color> |
|
| Значение по умолчанию | |
| Фигура без контура. | |
| № | Название |
| 5.12.2 | |
| Описание | |
| Толщина линии | |
| Диапазон значений | |
<length> |
|
| Значение по умолчанию | |
| 1 пиксел | |
| № | Название |
| 5.12.3 | |
| Описание | |
| Прозрачность заливки | |
| Диапазон значений | |
Число между 0 (полная прозрачность) и 1 (полная непрозрачность) |
|
| Значение по умолчанию | |
1 |
|
| № | Название |
| 5.12.4 | |
| Описание | |
| Определение стиля линии - сплошная, пунктиром или точками. | |
| Диапазон значений | |
<number> |
|
| Значение по умолчанию | |
| Сплошная. В качестве значения допускается указание ряда чисел. | |
| № | Название |
| 5.12.5 | dashoffset |
| Описание | |
| Определение отступа при задании пунктирной линии | |
| Диапазон значений | |
<length> |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 5.12.6 | |
| Описание | |
| Задание типа линии на концах - обычная (butt), скругленная (round) и с выступом (square). | |
| Диапазон значений | |
butt | round | square |
|
| Значение по умолчанию | |
butt |
|
| № | Название |
| 5.12.7 | sroke-linejoin |
| Описание | |
Тип линии на изгибе - обычный ( ), сглаженный ( round ) и рубленый ( bevel ). |
|
| Диапазон значений | |
mitre | round | bevel |
|
| Значение по умолчанию | |
mitre |
|
| № | Название |
| 5.12.8 | |
| Описание | |
Величина отступа при выборе значении атрибута |
|
| Диапазон значений | |
<number> |
|
| Значение по умолчанию | |
4 |
В табл. 5.13 приводятся различные примеры использования атрибутов контура.
| № | Код | Вид в браузере |
|---|---|---|
| 5.13.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke1.svg
</desc>
<rect x="0" y="30" width="150" height="90" ></rect>
<circle cx="75" cy="75" r="60" fill="blue" stroke="red"
stroke-width="15" stroke-opacity="0.6"/>
</svg>
|
![]() |
| Описание | ||
| Применение прозрачности к контуру. Заметно проведение контура по центральной части краев фигуры. | ||
| № | Код | Вид в браузере |
| 5.13.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke2.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5"/>
</svg>
|
![]() |
| Описание | ||
Атрибут , получение точечной линии. |
||
| № | Код | Вид в браузере |
| 5.13.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke3.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5,10"/>
</svg>
|
![]() |
| Описание | ||
Пара значений атрибута определяет размер точек и интервал между ними. |
||
| № | Код | Вид в браузере |
| 5.13.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke4.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5,10,15"/>
</svg>
|
![]() |
| Описание | ||
Получение пунктирной линии. Тройка значений атрибута определяет размер точек, интервал между ними и размер отрезков. |
||
| № | Код | Вид в браузере |
| 5.13.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke5.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5,10,15,5,10,15"/>
</svg>
|
![]() |
| Описание | ||
| Повторяющиеся тройки значений приводят к тому же самому результату. | ||
| № | Код | Вид в браузере |
| 5.13.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke6.svg
</desc>
<line x1="15" y1="0" x2="15" y2="100"
stroke="black" stroke-width="1"/>
<line x1="0" y1="10" x2="200" y2="10"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="0%"/>
<line x1="0" y1="30" x2="200" y2="30"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="25%"/>
<line x1="0" y1="50" x2="200" y2="50"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="50%"/>
<line x1="0" y1="70" x2="200" y2="70"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="75%"/>
<line x1="0" y1="90" x2="200" y2="90"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="100%"/>
</svg>
|
![]() |
| Описание | ||
Атрибут позволяет задать начальный отступ пунктирной линии. |
||
| № | Код | Вид в браузере |
| 5.13.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke7.svg
</desc>
<line x1="10" y1="25" x2="190" y2="25"
stroke="black" stroke-width="10"
stroke-linecap="butt"/>
<line x1="10" y1="60" x2="190" y2="60"
stroke="red" stroke-width="50"/>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением butt, совпадающим с принятым по умолчанию. |
||
| № | Код | Вид в браузере |
| 5.13.8 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke8.svg
</desc>
<line x1="10" y1="25" x2="190" y2="25"
stroke="black" stroke-width="10"
stroke-linecap="round"/>
<line x1="10" y1="60" x2="190" y2="60"
stroke="red" stroke-width="50"/>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением round, задает сглаживание на концах. Заметно выступающее расположение линии - для обеих линий заданы одинаковые значения абсцисс. |
||
| № | Код | Вид в браузере |
| 5.13.9 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke9.svg
</desc>
<line x1="10" y1="25" x2="190" y2="25"
stroke="black" stroke-width="10"
stroke-linecap="square"/>
<line x1="10" y1="60" x2="190" y2="60"
stroke="red" stroke-width="50"/>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением square, завершает линию обычным образом, но позволяет получить выступы по краям. |
||
| № | Код | Вид в браузере |
| 5.13.10 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke10.svg
</desc>
<polyline points="20,80 50,20 80,80"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter" />
</svg>
|
![]() |
| Описание | ||
Атрибут со значением , принятым по умолчанию. |
||
| № | Код | Вид в браузере |
| 5.13.11 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke11.svg
</desc>
<polyline points="20,80 50,20 80,80"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="round" />
</svg>
|
![]() |
| Описание | ||
Атрибут со значением round, задающим сглаженный изгиб. |
||
| № | Код | Вид в браузере |
| 5.13.12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke12.svg
</desc>
<polyline points="20,80 50,20 80,80"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="bevel" />
</svg>
|
![]() |
| Описание | ||
Атрибут со значением bevel, задающим рубленый изгиб. |
||
| № | Код | Вид в браузере |
| 5.13.13 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="600"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke13.svg
</desc>
<line x1="70" y1="0" x2="70" y2="700"
stroke="black" stroke-width="1"/>
<line x1="95" y1="0" x2="95" y2="700"
stroke="black" stroke-width="1"/>
<polyline points="10,30 70,50 10,70"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="1" />
<polyline points="10,130 70,150 10,170"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="2" />
<polyline points="10,230 70,250 10,270"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="3" />
<polyline points="10,330 70,350 10,370"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="4" />
<polyline points="10,430 70,450 10,470"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="5" />
<polyline points="10,530 70,550 10,570"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="6" />
</svg>
|
![]() |
| Описание | ||
В данном случае значения атрибута до четырех задают рубленый изгиб, равные и больше четырех - обычный. |
||
Элемент предназначен для создания стрелок, в качестве оформления которых может использоваться графический элемент или группа элементов. Определение маркера выглядит следующим образом:
<defs>
<marker id="myMarker" markerWidth="length" markerHeight="length"
refX="coordinate" refY="coordinate" orient="auto">
<!--Оформление маркера-->
</marker>
</defs>
<line x1="10" y1="10" x2="130" y2="10" stroke="red" stroke-width="2"
marker-end="url(#myMarker)"/>
Атрибут помещает в конец линии графический элемент, используемый в качестве оформления маркера. Описания атрибутов этого элемент приводятся в табл. 5.14.
| № | Название |
|---|---|
| 5.14.1 | markerWidth, markerHeight |
| Описание | |
| Ширина и высота фигуры, применяемой для оформления маркера. | |
| Диапазон значений | |
<length> |
|
| Значение по умолчанию | |
3 |
|
| № | Название |
| 5.14.2 | refX, refY |
| Описание | |
| Координаты верхней левой точки фигуры. | |
| Диапазон значений | |
< |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 5.14.3 | orient |
| Описание | |
| Поворот маркера вокруг центра. | |
| Диапазон значений | |
<angle> |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 5.14.4 | , , |
| Описание | |
| Расположение маркера на линии - в начале, конце или середине. | |
| Диапазон значений | |
| - | |
| Значение по умолчанию | |
| - |
Маркер, который был определен один раз, может применяться для многих линий в одном
| № | Код | Вид в браузере |
|---|---|---|
| 5.15.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker1.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="5" markerHeight="5"
refX="0" refY="2.5" orient="auto">
<polygon points="0,0, 5,2.5 0,5" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="20" markerHeight="20"
refX="0" refY="10" orient="auto">
<polygon points="0,0, 20,10 0,20" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="10" x2="130" y2="10"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="50" x2="130" y2="50"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="90" x2="130" y2="90"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Несколько маркеров, различающихся лишь значениями атрибутов markerWidth и markerHeight. |
||
| № | Код | Вид в браузере |
| 5.15.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker2.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="-5" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="5" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Горизонтальное позиционирование маркера относительно линии при помощи атрибутов refX и refY. |
||
| № | Код | Вид в браузере |
| 5.15.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker3.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="0" refY="0" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="0" refY="10" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Вертикальное позиционирование маркера относительно линии при помощи атрибутов refX и refY. |
||
| № | Код | Вид в браузере |
| 5.15.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker4.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="-20">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="20">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Атрибут orient отвечает за поворот маркера. |
||
| № | Код | Вид в браузере |
| 5.15.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker5.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-start="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)" />
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"
marker-start="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
| Размещение маркера относительно центра линии. | ||
| № | Код | Вид в браузере |
| 5.15.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker6.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="25" markerHeight="25"
refX="-2230" refY="400" orient="auto"
viewBox="0 0 1000 800">
<circle cx="500" cy="400" r="300" fill="lightskyblue"
stroke="blue" stroke-width="30"/>
<ellipse cx="500" cy="500" rx="150" ry="100"
fill="none" stroke="blue" stroke-width="30"/>
<rect x="300" y="370" width="400" height="130"
fill="lightskyblue"/>
<ellipse cx="350" cy="300" rx="100" ry="50"
fill="white" stroke="blue" stroke-width="30"/>
<ellipse cx="650" cy="300" rx="100" ry="50"
fill="white" stroke="blue" stroke-width="30"/>
<circle cx="350" cy="300" r="25" fill="black"/>
<circle cx="650" cy="300" r="25" fill="black"/>
</marker>
<marker id="myMarker2" markerWidth="60" markerHeight="60"
refX="100" refY="38" orient="auto" viewBox="0 0 200 100">
<polygon fill="red"
points="100,10 105.8,27.2 123.8,27.2 109.4,38
114.6,55.2 100,45 85.4,55.2 90.6,38
76.2,27.2 94.2,27.2" />
</marker>
<defs>
<radialGradient id="MyGradient" fx="25%" fy="25%">
<stop offset="0%" stop-color="white"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<marker id="myMarker3"
markerWidth="15" markerHeight="15"
refX="37.5" refY="70" orient="auto"
viewBox="0 0 150 150">
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</marker>
</defs>
<line x1="10" y1="20" x2="130" y2="30"
stroke="red" stroke-width="2"
marker-start="url(#myMarker1)"/>
<line x1="10" y1="60" x2="130" y2="70"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)" />
<line x1="10" y1="100" x2="130" y2="110"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"
marker-start="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
| В качестве фигуры для оформления маркера может выступать группа простых элементов. | ||
В Лекции 2 мы рассматривали объединении отдельных элементов в группы. Это очень удобный способ объединения фигур для задания координат, применения атрибутов и как мы увидим в следующих лекциях применения трансформаций. Но существует еще один способ объединения фигур, позволяющий создавать свои собственные элементы. Для них можно задавать цвет заливки, контура, размеры - словом поступать с ними так, как и в случае определения обычных элементов. Рассмотрим следующий фрагмент кода:
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15,50 L 45, 50 M 30, 30 L 30, 75 M 30,
75 L 40, 90 M 30, 75 L 20, 90"></path>
<circle cx="30" cy="30" r="10"/>
</symbol>
</defs>
<use xlink:href="#mySymbol" x="0" y="10" width="100"
height="150" fill="pink" stroke="red" stroke-width="3"/>
Внутри секции defs помещается определение элемента symbol, содержащее окружность и элемент Path. Координаты этих элементов определяются в собственной системе - для этого вводится атрибут viewBox. Созданный символ используется в use и атрибута xlink:href. Размеры символа можно менять без соблюдения пропорций - для этого в его определении включен атрибут preserveAspectRatio со значением none. В табл. 5.16 приводятся примеры использования символов.
| № | Код | Вид в браузере |
|---|---|---|
| 5.16.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример symbol1.svg
</desc>
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15, 50 L 45, 50 M 30, 30 L 30, 75
M 30, 75 L 40, 90 M 30, 75 L 20, 90">
</path>
<circle cx="30" cy="30" r="10"/>
</symbol>
</defs>
<use xlink:href="#mySymbol" x="0" y="10"
width="150" height="150"/>
<use xlink:href="#mySymbol" x="50" y="10"
width="300" height="150"/>
<use xlink:href="#mySymbol" x="50" y="90"
width="150" height="300"/>
</svg>
|
![]() |
| Описание | ||
| Применение символа с заданием различных геометрических размеров. По умолчанию фигуры заливаются черным цветом с толщиной линий в 1 пиксел. | ||
| № | Код | Вид в браузере |
| 5.16.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример symbol2.svg
</desc>
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15, 50 L 45, 50 M 30, 30 L 30, 75
M 30, 75 L 40, 90 M 30, 75 L 20, 90">
</path>
<circle cx="30" cy="30" r="10"/>
</symbol>
</defs>
<use xlink:href="#mySymbol" x="0" y="10"
width="100" height="150" fill="pink"
stroke="red" stroke-width="3"/>
<use xlink:href="#mySymbol" x="50" y="80"
width="70" height="70" fill="pink"
stroke="red" stroke-width="2"/>
<use xlink:href="#mySymbol" x="80" y="80"
width="70" height="70" fill="lightblue"
stroke="blue" stroke-width="2"/>
<use xlink:href="#mySymbol" x="100" y="0"
width="120" height="160" fill="lightblue"
stroke="blue" stroke-width="3"/>
</svg>
|
![]() |
| Описание | ||
| Применение символа с заданием геометрических размеров, а также заливки и контура. | ||
| № | Код | Вид в браузере |
| 5.16.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример symbol3.svg
</desc>
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15, 50 L 45, 50 M 30, 30 L 30, 75
M 30, 75 L 40, 90 M 30, 75 L 20, 90">
</path>
<circle cx="30" cy="30" r="10"/>
</symbol>
<symbol id="myFamily">
<use xlink:href="#mySymbol" x="0" y="10"
width="100" height="150" fill="pink"
stroke="red" stroke-width="3"/>
<use xlink:href="#mySymbol" x="50" y="80"
width="70" height="70" fill="pink"
stroke="red" stroke-width="2"/>
<use xlink:href="#mySymbol" x="80" y="80"
width="70" height="70" fill="lightblue"
stroke="blue" stroke-width="2"/>
<use xlink:href="#mySymbol" x="100" y="0"
width="120" height="160" fill="lightblue"
stroke="blue" stroke-width="3"/>
</symbol>
</defs>
<use xlink:href="#myFamily" x="0" y="0"
width="150" height="150"/>
<use xlink:href="#myFamily" x="0" y="120"
width="150" height="150"/>
<use xlink:href="#myFamily" x="0" y="240"
width="150" height="150"/>
</svg>
|
![]() |
| Описание | ||
| Применение вложенных символов. | ||
Элемент clipPath предназначен для отсекания заданной областью части изображения. Этот инструмент хорошо знаком пользователям графических программ, например в Adobe Photoshop для таких задач имеются специальные инструменты (рис. 5.5):
(рис 5.5) Инструмент горизонтальный текст-маска в программе Adobe PhotoshopФрагмент кода для элемента clipPath выглядит так:
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
Внутри элемента определяется фигура, которая будет ограничивать изображения. Элемент image предназначен для помещения в clipPath.
| № | Код | Вид в браузере |
|---|---|---|
| 5.17.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath1.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание части изображения окружностью. | ||
| № | Код | Вид в браузере |
| 5.17.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath2.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<polygon points="20,10 280,10 20, 190 280,190"
stroke="red" stroke-width="3" fill="lightpink"/>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
Отсекание части изображения элементов polygon. (См. polygon3. |
||
| № | Код | Вид в браузере |
| 5.17.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath3.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="100" cy="100" r="90"></circle>
<circle cx="200" cy="100" r="90"></circle>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
При наложении двух элементов, определяемых в clipPath, занимаемая ими площадь объединяется. |
||
| № | Код | Вид в браузере |
| 5.17.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath4.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="100" cy="100" r="90"></circle>
<circle cx="200" cy="100" r="90"></circle>
</clipPath>
</defs>
<rect width="300" height="200" x="0" y="0" fill="black">
</rect>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Для оформления можно использовать дополнительные элементы. | ||
| № | Код | Вид в браузере |
| 5.17.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath5.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<rect width="300" height="200" x="0" y="0" fill="pink">
</rect>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
<circle cx="150" cy="100" r="90" fill="none"
stroke="red" stroke-width="5" stroke-dasharray="5"/>
</svg>
|
![]() |
| Описание | ||
| Для последовательности элементов, среди которых имеется элемент image, справедлив тот же самый |
||
| № | Код | Вид в браузере |
| 5.17.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath6.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<text x="2" y="150" font-family="Arial" font-size="150">
АБВ
</text>
</clipPath>
</defs>
<image x="0" y="0" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание части изображения текстом. | ||
| № | Код | Вид в браузере |
| 5.17.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath7.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<text x="2" y="150" font-family="Arial" font-size="150">
АБВ
</text>
</clipPath>
</defs>
<rect width="300" height="200" x="0" y="0" fill="yellow">
</rect>
<image x="0" y="0" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
<text x="2" y="150" font-family="Arial" font-size="150"
fill="none" stroke="orange" stroke-width="3">
АБВ
</text>
</svg>
|
![]() |
| Описание | ||
| Отсекание части изображения текстом с оформлением. | ||
При работе с clipPath можно было заметить, что внутреннее оформление фигуры, определяемой внутри элемента, игнорируется. Элемент mask является инструментом, поддерживающим все свойства элемента clipPath с учетом графической структуры заполнителя. Фрагмент кода для элемента mask выглядит так:
<defs>
<mask id="myMask">
<circle cx="150" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
Здесь в качестве заливки фигуры-заполнителя используется
| № | Код | Вид в браузере |
|---|---|---|
| 5.18.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask1.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="0%" stop-color="white" stop-opacity="1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</radialGradient>
<!--Объект mask-->
<mask id="myMask">
<circle cx="150" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Применение в качестве заполнителя маски окружности с градиентной заливкой. | ||
| № | Код | Вид в браузере |
| 5.18.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask2.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="80%" stop-color="white" stop-opacity="1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</radialGradient>
<!--Объект mask-->
<mask id="myMask">
<circle cx="150" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Применение в качестве заполнителя маски окружности с градиентной заливкой. Уменьшением размера градиентной области достигается увеличение площади открытой поверхности. | ||
| № | Код | Вид в браузере |
| 5.18.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask3.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="80%" stop-color="white"
stop-opacity="1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</radialGradient>
<!--Объект mask-->
<mask id="myMask">
<circle cx="100" cy="100" r="90" fill="url(#myGradient)">
</circle>
<circle cx="200" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
Так же, как и в случае clipPath, при использовании нескольких фигур в качестве заполнителя их площади объединяются. |
||
| № | Код | Вид в браузере |
| 5.18.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример noMask1.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="80%" stop-color="blue"
stop-opacity="0"/>
<stop offset="100%" stop-color="blue"
stop-opacity="1"/>
</radialGradient>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<rect width="300" height="200"
x="0" y="0" fill="blue"></rect>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)"
xlink:href="sea2.jpg"/>
<circle cx="150" cy="100" r="90"
fill="url(#myGradient)">
</circle>
</svg>
|
![]() |
| Описание | ||
При использовании заполнителя, заполненного градиентом любого цвета, на рисунке заметно уменьшение прозрачности белого цвета. Для получения нужного цвета используется комбинация обычного элемента clipPath и наложения |
||
| № | Код | Вид в браузере |
| 5.18.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask4.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<linearGradient id="myGradient" x1="0%"
y1="0%" x2="0%" y2="100%" >
<stop offset="0%" stop-color="white"
stop-opacity="1"/>
<stop offset="100%" stop-color="white"
stop-opacity="0"/>
</linearGradient>
<!--Объект mask-->
<mask id="myMask">
<rect x="0" y="0" width="300"
height="200" fill="url(#myGradient)"/>
</mask>
</defs>
<text x="2" y="150" font-family="Arial"
font-size="150" fill="red" mask="url(#myMask)">
АБВ
</text>
</svg>
|
![]() |
| Описание | ||
| Маскированный текст. | ||
Мы закончили рассмотрение основных возможностей рисования, связанных с простой графикой.
Заливка цветом может применяться к фигурам, тексту и элементам Path. При указании цвета допустимы именованные названия (см. Приложение 1), а также RGB - код в десятичной или шестнадцатеричной формах. В табл. 5.1 приводится описание основных атрибутов заливки.
| № | Название |
|---|---|
| 5.1.1 | fill |
| Описание | |
| Заливка цветом внутренней части фигуры или текста | |
| Диапазон значений | |
| Именованные названия, десятичный или шестнадцатеричный индекс цвета | |
| Значение по умолчанию | |
| Черный (black) | |
| № | Название |
| 5.1.2 | fill-opacity |
| Описание | |
| Прозрачность заливки | |
| Диапазон значений | |
Число между 0 (полная прозрачность) и 1 (полная непрозрачность) |
|
| Значение по умолчанию | |
1 |
|
| № | Название |
| 5.1.3 | fill-rule |
| Описание | |
| Режим заливки фигуры, при которой остаются пустые (незакрашенные) области. | |
| Диапазон значений | |
- полная заливка. evenodd - заливка с пустыми областями. |
|
| Значение по умолчанию | |
|
Ранее мы пользовались при заливке только атрибутом fill. Следовательно, мы имели дело с полностью непрозрачными объектами, заполняемыми цветом полностью. В табл. 5.2 приводятся примеры использования атрибутов заливки.
| № | Код | Вид в браузере |
|---|---|---|
| 5.2.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill1.svg
</desc>
<rect x="0" y="25" width="210" height="50"></rect>
<rect x="10" y="0" width="10" height="100"
fill="red" fill-opacity="0.1"></rect>
<rect x="30" y="0" width="10" height="100"
fill="red" fill-opacity="0.2"></rect>
<rect x="50" y="0" width="10" height="100"
fill="red" fill-opacity="0.3"></rect>
<rect x="70" y="0" width="10" height="100"
fill="red" fill-opacity="0.4"></rect>
<rect x="90" y="0" width="10" height="100"
fill="red" fill-opacity="0.5"></rect>
<rect x="110" y="0" width="10" height="100"
fill="red" fill-opacity="0.6"></rect>
<rect x="130" y="0" width="10" height="100"
fill="red" fill-opacity="0.7"></rect>
<rect x="150" y="0" width="10" height="100"
fill="red" fill-opacity="0.8"></rect>
<rect x="170" y="0" width="10" height="100"
fill="red" fill-opacity="0.9"></rect>
<rect x="190" y="0" width="10" height="100"
fill="red" fill-opacity="1"></rect>
</svg>
|
![]() |
| Описание | ||
| Полоски с различными значениями прозрачности. | ||
| № | Код | Вид в браузере |
| 5.2.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill2.svg
</desc>
<rect x="0" y="25" width="210" height="50"></rect>
<rect x="10" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.1"></rect>
<rect x="30" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.2"></rect>
<rect x="50" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.3"></rect>
<rect x="70" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.4"></rect>
<rect x="90" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.5"></rect>
<rect x="110" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.6"></rect>
<rect x="130" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.7"></rect>
<rect x="150" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.8"></rect>
<rect x="170" y="0" width="10" height="100"
style="fill:red; fill-opacity:0.9"></rect>
<rect x="190" y="0" width="10" height="100"
style="fill:red; fill-opacity:1"></rect>
</svg>
|
![]() |
| Описание | ||
| Полоски с различными значениями прозрачности, оформление при помощи атрибута style. | ||
| № | Код | Вид в браузере |
| 5.2.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill3.svg
</desc>
<rect x="0" y="25" width="210" height="50" ></rect>
<g style="fill:red; fill-opacity:0.6">
<rect x="10" y="0" width="10" height="100"></rect>
<rect x="30" y="0" width="10" height="100"></rect>
<rect x="50" y="0" width="10" height="100"></rect>
<rect x="70" y="0" width="10" height="100"></rect>
<rect x="90" y="0" width="10" height="100"></rect>
<rect x="110" y="0" width="10" height="100"></rect>
<rect x="130" y="0" width="10" height="100"></rect>
<rect x="150" y="0" width="10" height="100"></rect>
<rect x="170" y="0" width="10" height="100"></rect>
<rect x="190" y="0" width="10" height="100"></rect>
</g>
</svg>
|
![]() |
| Описание | ||
| Задание единой прозрачности для группы элементов. | ||
| № | Код | Вид в браузере |
| 5.2.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill4.svg
</desc>
<polygon fill-rule="nonzero" fill="red" stroke="black"
points="50,6 18,86 98,38 2,38 82,86"/>
<polygon fill-rule="evenodd" fill="red" stroke="black"
points="151,6 119,86 199,38 103,38 183,86"/>
</svg>
|
![]() |
| Описание | ||
| Режимы заливки - полная и с пустыми областями. | ||
| № | Код | Вид в браузере |
| 5.2.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill5.svg
</desc>
<polygon style="fill-rule: nonzero; fill: red; stroke: black;"
points="50,6 18,86 98,38 2,38 82,86"/>
<polygon style="fill-rule: evenodd; fill: red; stroke: black;"
points="151,6 119,86 199,38 103,38 183,86" />
</svg>
|
![]() |
| Описание | ||
Режимы заливки - полная и с пустыми областями, оформление при помощи атрибута style. |
||
| № | Код | Вид в браузере |
| 5.2.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример fill6.svg
</desc>
<!--Фоновый черный прямоугольник-->
<rect x="0" y="25" width="250" height="250" ></rect>
<!--Непрозрачный текст-->
<g font-family="Arial" font-size="40" stroke="white"
stroke-width="1">
<text x="10" y="100" fill="red">
Red
</text>
<text x="10" y="150" fill="yellow">
Yellow
</text>
<text x="10" y="200" fill="green">
Green
</text>
</g>
<!--Полупрозрачный текст-->
<g style="fill:red; fill-opacity:0.6">
<g font-family="Arial" font-size="40" stroke="white"
stroke-width="1">
<text x="135" y="100" fill="red">
Red
</text>
<text x="135" y="150" fill="yellow">
Yellow
</text>
<text x="135" y="200" fill="green">
Green
</text>
</g>
</g>
</svg>
|
![]() |
| Описание | ||
| Полностью непрозрачный и частично прозрачный текст на черном фоне. Для оформления текста используются группы. | ||
Линейная градиентная заливка предназначена для получения плавного цветового перехода в направлении, заданной прямой. Элемент linearGradient определяется в области defs, а затем он может быть применен для произвольной фигуры в качестве заливки:
<defs>
<linearGradient id="MyGradient">
<stop offset="30%" stop-color="red"/>
<stop offset="70%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150" fill="url(#MyGradient)"/>
Внутри элементов stop задаются цвета градиента в атрибутах stop-color и граница области каждого из цветов в атрибутах offset (рис. 5.1):
(рис 5.1) Определение linearGradientАтрибут offset определяет области покрытия исходных цветов и формируемого ими промежуточного. Так, на рисунке первый цвет занимает 30%, второй цвет также 30% (100-70=30), а область градиента занимает всю остальную часть, т.е. 40%. В табл. 5.3 приводится примеры с различными значениями атрибута offset.
| № | Код | Вид в браузере |
|---|---|---|
| 5.3.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset1.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
Атрибуты offset с первыми предельными граничными значениями - 0 и 100%. |
||
| № | Код | Вид в браузере |
| 5.3.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset2.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="20%" stop-color="red"/>
<stop offset="80%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 20 и 80%. Хорошо заметны области чистых цветов. |
||
| № | Код | Вид в браузере |
| 5.3.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset3.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="30%" stop-color="red"/>
<stop offset="70%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 30 и 70%. |
||
| № | Код | Вид в браузере |
| 5.3.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientoffset4.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="50%" stop-color="red"/>
<stop offset="50%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со вторыми предельными граничными значениями - 50 и 50%. В этом случае градиент вырождается в две области с чистыми цветами. |
||
В рассмотренных случая мы видели направление градиента только в одном направлении - горизонтальном. Для произвольного направления вводится набор атрибутов x1, x2, y1, y2 следующим образом:
<defs>
<linearGradient id="MyGradient" x1="0%" y1="0%" x2="100%" y2="100%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150" fill="url(#MyGradient)" />
В этом случае градиент будет направлен из верхнего левого в правый нижний угол прямоугольника (рис. 5.2):
(рис 5.2) Направление градиентаАтрибуты x1, y1 и x2, y2 задают координаты двух точек, в направлении которых будет направлен градиент. При этом для углов области градиента значения атрибутов определяются указанным на рисунке образом. Можно провести аналогию между значениями в процентах и обычными координатами - оси направлены совершенно одинаково. В табл. 5.4 приведены различные предельные случаи направления градиента.
| № | Код | Вид в браузере |
|---|---|---|
| 5.4.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection1.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="0%" x2="100%" y2="100%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Направление градиента из верхнего левого в правый нижний угол. | ||
| № | Код | Вид в браузере |
| 5.4.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection2.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="0%" x2="100%" y2="0%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Обычное направление градиента, с которым мы уже сталкивались ранее (см. linearGradientoffset1. |
||
| № | Код | Вид в браузере |
| 5.4.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection3.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Направление градиента сверху вниз. | ||
| № | Код | Вид в браузере |
| 5.4.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection4.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="100%" y1="0%" x2="0%" y2="0%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Направление градиента слева направо. В принципе, такое же расположение можно получить, если поменять местами цвета градиента. | ||
| № | Код | Вид в браузере |
| 5.4.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientDirection5.svg
</desc>
<defs>
<linearGradient id="MyGradient"
x1="0%" y1="100%" x2="0%" y2="0%" >
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Направление градиента снизу вверх. | ||
Для других, промежуточных значений, можно изменять значения атрибутов в диапазоне от 0 до 100%.
Внутри определения градиента можно помещать несколько цветов:
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150" fill="url(#MyGradient)"/>
Таким образом, получается серия цветов, напоминающая радугу (спектр). В табл. 5.5 приводятся различные примеры использования градиента.
| № | Код | Вид в браузере |
|---|---|---|
| 5.5.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome1.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Градиент содержащий серию цветов. | ||
| № | Код | Вид в браузере |
| 5.5.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome2.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<circle cx="75" cy="75" r="75"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Применение градиента к окружности. | ||
| № | Код | Вид в браузере |
| 5.5.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome3.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<rect x="10" y ="5" width="130" height="90"
fill="url(#MyGradient)"/>
<circle cx="35" cy="120" r="25"
fill="url(#MyGradient)" />
<circle cx="115" cy="120" r="25"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Применение градиента к нескольким фигурам. Распределение цветов масштабируется в зависимости от размеров фигуры. | ||
| № | Код | Вид в браузере |
| 5.5.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome4.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<text x="10" y="100" font-family="Arial Bold"
font-size="90" stroke="black" stroke-width="1"
fill="url(#MyGradient)">
Текст
</text>
</svg>
|
![]() |
| Описание | ||
| Заливка градиентом текста. | ||
| № | Код | Вид в браузере |
| 5.5.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример linearGradientSome5.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="100%" stop-color="white"
stop-opacity="0"/>
</linearGradient>
</defs>
<rect x="0" y="10" width="150" height="130"></rect>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибут stop-opacity позволяет задавать прозрачность цвета градиента. |
||
Радиальная градиентная заливка позволяет получать плавное изменение цвета в направлении от центра или к центру окружности.
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
Определения радиального и radialGradient. Графически распределение цвета выглядит так (рис. 5.3):
(рис 5.3) Определение radialGradientАтрибут offset в данном случае отсчитывается в направлении радиуса окружности. В табл. 5.6 приводятся примеры с различными значениями этого атрибута.
| № | Код | Вид в браузере |
|---|---|---|
| 5.6.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset1.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset с первыми предельными граничными значениями - 0 и 100%. |
||
| № | Код | Вид в браузере |
| 5.6.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset2.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="yellow"/>
<stop offset="100%" stop-color="red"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset с первыми предельными граничными значениями - 0 и 100%. Цвета градиента поменяли местами. |
||
| № | Код | Вид в браузере |
| 5.6.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset3.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="20%" stop-color="red"/>
<stop offset="80%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 20 и 80%. Как и в случае |
||
| № | Код | Вид в браузере |
| 5.6.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset4.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="30%" stop-color="red"/>
<stop offset="70%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со значениями - 30 и 70%. |
||
| № | Код | Вид в браузере |
| 5.6.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientoffset5.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="50%" stop-color="red"/>
<stop offset="50%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
Атрибуты offset со вторыми предельными граничными значениями - 50 и 50%. В этом случае градиент вырождается в две радиальные области с чистыми цветами. |
||
Для элемента radialGradient можно задать область распространения непосредственно в его определении, при помощи атрибутов cx, cy и r:
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)"/>
В этом случае область градиента будет локализована в центре фигуры в окружности с радиусом 25% (рис. 5.4)
(рис 5.4) Локализация радиального градиентаПрименять набор этих свойств удобно в случае заливки произвольных, не сферических фигур - радиальная окружность будет присутствовать в области однородного цвета. В табл. 5.7 приводятся примеры использования этих атрибутов.
| № | Код | Вид в браузере |
|---|---|---|
| 5.7.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize1.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Значения атрибутов совпадают с принятыми по умолчанию (см. radialGradientoffset1. |
||
| № | Код | Вид в браузере |
| 5.7.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize2.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Градиент локализован в окружности с радиусом 25% | ||
| № | Код | Вид в браузере |
| 5.7.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize3.svg
</desc>
<defs>
<radialGradient id="MyGradient1">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
<radialGradient id="MyGradient2"
cx="50%" cy="50%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<rect height="150" width="150" x="0" y="0"
fill="url(#MyGradient1)"/>
<rect height="150" width="150" x="0" y="150"
fill="url(#MyGradient2)"/>
<!--Вспомогательная линия-->
<line x1="0" y1="150" x2="150" y2="150"
stroke="red" stroke-width="2"/>
</svg>
|
![]() |
| Описание | ||
| Заливка прямоугольника |
||
| № | Код | Вид в браузере |
| 5.7.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize4.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="50%" cy="50%" r="75%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Увеличение площади распространения градиента позволяет выделить его определенную часть. | ||
| № | Код | Вид в браузере |
| 5.7.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize5.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="25%" cy="25%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание фигурой изображение градиента, локализованного в верхней левой части. | ||
| № | Код | Вид в браузере |
| 5.7.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientLocalize6.svg
</desc>
<defs>
<radialGradient id="MyGradient"
cx="75%" cy="75%" r="25%">
<stop offset="0%" stop-color="red"/>
<stop offset="100%" stop-color="yellow"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание фигурой изображение градиента, локализованного в правой нижней части. | ||
В последних двух примерах заметно"обрезанное" расположение области градиента. Для получения эффекта светового блика на фигуре также используется fx и fy, которые подстраивают распространение градиента под геометрические размеры фигуры (табл. 5.8).
| № | Код | Вид в браузере |
|---|---|---|
| 5.8.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientF1.svg
</desc>
<defs>
<radialGradient id="MyGradient"
fx="25%" fy="25%">
<stop offset="0%" stop-color="white"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Эффект светового блика в левой верхней части фигуры. | ||
| № | Код | Вид в браузере |
| 5.8.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример radialGradientF2.svg
</desc>
<defs>
<radialGradient id="MyGradient"
fx="75%" fy="75%">
<stop offset="0%" stop-color="white"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Эффект светового блика в правой нижней части фигуры. | ||
Как и в случае stop-opacity (табл. 5.9)
| № | Код | Вид в браузере |
|---|---|---|
| 5.9.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome1.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| Заливка окружности |
||
| № | Код | Вид в браузере |
| 5.9.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome2.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<rect x="0" y="0" width="150" height="150"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Заливка прямоугольника |
||
| № | Код | Вид в браузере |
| 5.9.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome3.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<rect x="10" y ="5" width="130" height="90"
fill="url(#MyGradient)"/>
<circle cx="35" cy="120" r="25"
fill="url(#MyGradient)"/>
<circle cx="115" cy="120" r="25"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
| Заливка нескольких фигур |
||
| № | Код | Вид в браузере |
| 5.9.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome4.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="10%" stop-color="white"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</radialGradient>
</defs>
<text x="10" y="100"
font-family="Arial Bold" font-size="90"
stroke="black" stroke-width="1"
fill="url(#MyGradient)">
Текст
</text>
</svg>
|
![]() |
| Описание | ||
| Заливка текста |
||
| № | Код | Вид в браузере |
| 5.9.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome5.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="100%" stop-color="white"
stop-opacity="0"/>
</radialGradient>
</defs>
<rect x="0" y="60"
width="150" height="30" ></rect>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)" />
</svg>
|
![]() |
| Описание | ||
| № | Код | Вид в браузере |
| 5.9.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример radialGradientSome6.svg
</desc>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" stop-color="white"
stop-opacity="0"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<rect x="0" y="60" width="150" height="30"></rect>
<circle cx="75" cy="75" r="70"
fill="url(#MyGradient)"/>
</svg>
|
![]() |
| Описание | ||
Элемент pattern предназначен для создания мозаичной графической текстуры, которая может применяться в качестве заливки или контура фигуры. Определение
<pattern id="MyPattern" x="coordinate" y="coordinate"
width="length" height="length"
patternUnits="userSpaceOnUse | objectBoundingBox" >
<!-Графическое содержимое-->
</pattern>
Элемент pattern не входит в секцию defs, однако он не может быть отображен в документе непосредственно. Для его включения обязательно требуется фигура с установленными свойствами или fill. В табл. 5.10 приводятся описание атрибутов этого элемента.
| № | Название |
|---|---|
| 5.10.1 | x, y |
| Описание | |
| Координаты верхнего левого угла графического элемента, который служит мозаикой в паттерне. | |
| № | Название |
| 5.10.2 | width, height |
| Описание | |
| Ширина и высота площади, которую занимает отдельный элемент мозаики. Визуально этот параметр определяет разреженность или уплотненность |
|
| № | Название |
| 5.10.3 | patternUnits |
| Описание | |
Определение координатной системы для атрибутов x, y, width и height. Возможны следующие значения:userSpaceOnUse - атрибуты x, y, width и height определяются в системе координат той фигуры, для которой будет применяться objectBoundingBox - атрибуты x, y, width и height определяются в системе координат самого patternUnits не указан, то по умолчанию принимается значение objectBoundingBox. |
В табл. 5.11 приводятся примеры использования
| № | Код | Вид в браузере |
|---|---|---|
| 5.11.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern1.svg
</desc>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<circle cx="11" cy="11" r="10" fill="red" stroke="black"/>
</pattern>
<rect x="2" y="2" width="146" height="146"
fill="url(#MyPattern)" stroke="black" stroke-width ="2"/>
</svg>
|
![]() |
| Описание | ||
Графическое содержимое circle. |
||
| № | Код | Вид в браузере |
| 5.11.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern2.svg
</desc>
<pattern id="MyPattern" x="0" y="0" width="40" height="40"
patternUnits="userSpaceOnUse">
<circle cx="11" cy="11" r="10" fill="red" stroke="black" />
</pattern>
<rect x="2" y="2" width="146" height="146"
fill="url(#MyPattern)" stroke="black" stroke-width ="2" />
</svg>
|
![]() |
| Описание | ||
По сравнению с предыдущим примером, здесь увеличены значения атрибутов width и height в определении |
||
| № | Код | Вид в браузере |
| 5.11.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern3.svg
</desc>
<pattern id="MyPattern" x="20" y="10" width="40" height="40"
patternUnits="userSpaceOnUse">
<circle cx="11" cy="11" r="10" fill="red" stroke="black" />
</pattern>
<rect x="2" y="2" width="146" height="146" fill="url(#MyPattern)"
stroke="black" stroke-width ="2" />
</svg>
|
![]() |
| Описание | ||
Смещение верхней точки заполнителя при изменении атрибутов x и y внутри |
||
| № | Код | Вид в браузере |
| 5.11.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример pattern4.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="20" height = "20" fill="url(#MyGradient)"/>
</pattern>
<ellipse cx="75" cy="75" rx="75" ry="50" fill="url(#MyPattern)"
stroke="black" stroke-width ="2" />
</svg>
|
![]() |
| Описание | ||
| В качестве графического содержимого |
||
| № | Код | Вид в браузере |
| 5.11.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример pattern5.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="20" height = "20" fill="url(#MyGradient)" />
</pattern>
<ellipse cx="75" cy="75" rx="75" ry="50" fill="magenta"
stroke="url(#MyPattern)" stroke-width ="10" />
</svg>
|
![]() |
| Описание | ||
Применение элемента pattern в качестве контура фигуры. |
||
| № | Код | Вид в браузере |
| 5.11.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример pattern6.svg
</desc>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" stop-color="blue"/>
<stop offset="20%" stop-color="red"/>
<stop offset="30%" stop-color="orange"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="50%" stop-color="green"/>
<stop offset="60%" stop-color="deepskyblue"/>
<stop offset="70%" stop-color="blue"/>
<stop offset="80%" stop-color="purple"/>
<stop offset="100%" stop-color="white"/>
</linearGradient>
</defs>
<pattern id="MyPattern" x="0" y="0" width="22" height="22"
patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="20" height = "20" fill="url(#MyGradient)"/>
</pattern>
<text x="10" y="100" font-family="Arial Bold" font-size="90"
stroke="black" stroke-width="1" fill="url(#MyPattern)">
Текст
</text>
</svg>
|
![]() |
| Описание | ||
| Заполнение |
||
Применение
Оформление фигуры определяется не только ее заливкой, но и контуром. В первых лекциях мы определяли цвет заливки и ее толщину. Теперь рассмотрим другие атрибуты контура, доступные в
| № | Название |
|---|---|
| 5.12.1 | |
| Описание | |
| Рисование контура фигуры | |
| Диапазон значений | |
<color> |
|
| Значение по умолчанию | |
| Фигура без контура. | |
| № | Название |
| 5.12.2 | |
| Описание | |
| Толщина линии | |
| Диапазон значений | |
<length> |
|
| Значение по умолчанию | |
| 1 пиксел | |
| № | Название |
| 5.12.3 | |
| Описание | |
| Прозрачность заливки | |
| Диапазон значений | |
Число между 0 (полная прозрачность) и 1 (полная непрозрачность) |
|
| Значение по умолчанию | |
1 |
|
| № | Название |
| 5.12.4 | |
| Описание | |
| Определение стиля линии - сплошная, пунктиром или точками. | |
| Диапазон значений | |
<number> |
|
| Значение по умолчанию | |
| Сплошная. В качестве значения допускается указание ряда чисел. | |
| № | Название |
| 5.12.5 | dashoffset |
| Описание | |
| Определение отступа при задании пунктирной линии | |
| Диапазон значений | |
<length> |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 5.12.6 | |
| Описание | |
| Задание типа линии на концах - обычная (butt), скругленная (round) и с выступом (square). | |
| Диапазон значений | |
butt | round | square |
|
| Значение по умолчанию | |
butt |
|
| № | Название |
| 5.12.7 | sroke-linejoin |
| Описание | |
Тип линии на изгибе - обычный ( ), сглаженный ( round ) и рубленый ( bevel ). |
|
| Диапазон значений | |
mitre | round | bevel |
|
| Значение по умолчанию | |
mitre |
|
| № | Название |
| 5.12.8 | |
| Описание | |
Величина отступа при выборе значении атрибута |
|
| Диапазон значений | |
<number> |
|
| Значение по умолчанию | |
4 |
В табл. 5.13 приводятся различные примеры использования атрибутов контура.
| № | Код | Вид в браузере |
|---|---|---|
| 5.13.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke1.svg
</desc>
<rect x="0" y="30" width="150" height="90" ></rect>
<circle cx="75" cy="75" r="60" fill="blue" stroke="red"
stroke-width="15" stroke-opacity="0.6"/>
</svg>
|
![]() |
| Описание | ||
| Применение прозрачности к контуру. Заметно проведение контура по центральной части краев фигуры. | ||
| № | Код | Вид в браузере |
| 5.13.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke2.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5"/>
</svg>
|
![]() |
| Описание | ||
Атрибут , получение точечной линии. |
||
| № | Код | Вид в браузере |
| 5.13.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke3.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5,10"/>
</svg>
|
![]() |
| Описание | ||
Пара значений атрибута определяет размер точек и интервал между ними. |
||
| № | Код | Вид в браузере |
| 5.13.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke4.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5,10,15"/>
</svg>
|
![]() |
| Описание | ||
Получение пунктирной линии. Тройка значений атрибута определяет размер точек, интервал между ними и размер отрезков. |
||
| № | Код | Вид в браузере |
| 5.13.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="150" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke5.svg
</desc>
<circle cx="75" cy="75" r="70" fill="none" stroke="red"
stroke-width="5" stroke-dasharray="5,10,15,5,10,15"/>
</svg>
|
![]() |
| Описание | ||
| Повторяющиеся тройки значений приводят к тому же самому результату. | ||
| № | Код | Вид в браузере |
| 5.13.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke6.svg
</desc>
<line x1="15" y1="0" x2="15" y2="100"
stroke="black" stroke-width="1"/>
<line x1="0" y1="10" x2="200" y2="10"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="0%"/>
<line x1="0" y1="30" x2="200" y2="30"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="25%"/>
<line x1="0" y1="50" x2="200" y2="50"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="50%"/>
<line x1="0" y1="70" x2="200" y2="70"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="75%"/>
<line x1="0" y1="90" x2="200" y2="90"
stroke="red" stroke-width="5"
stroke-dasharray="5,10,15" stroke-dashoffset="100%"/>
</svg>
|
![]() |
| Описание | ||
Атрибут позволяет задать начальный отступ пунктирной линии. |
||
| № | Код | Вид в браузере |
| 5.13.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke7.svg
</desc>
<line x1="10" y1="25" x2="190" y2="25"
stroke="black" stroke-width="10"
stroke-linecap="butt"/>
<line x1="10" y1="60" x2="190" y2="60"
stroke="red" stroke-width="50"/>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением butt, совпадающим с принятым по умолчанию. |
||
| № | Код | Вид в браузере |
| 5.13.8 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke8.svg
</desc>
<line x1="10" y1="25" x2="190" y2="25"
stroke="black" stroke-width="10"
stroke-linecap="round"/>
<line x1="10" y1="60" x2="190" y2="60"
stroke="red" stroke-width="50"/>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением round, задает сглаживание на концах. Заметно выступающее расположение линии - для обеих линий заданы одинаковые значения абсцисс. |
||
| № | Код | Вид в браузере |
| 5.13.9 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke9.svg
</desc>
<line x1="10" y1="25" x2="190" y2="25"
stroke="black" stroke-width="10"
stroke-linecap="square"/>
<line x1="10" y1="60" x2="190" y2="60"
stroke="red" stroke-width="50"/>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением square, завершает линию обычным образом, но позволяет получить выступы по краям. |
||
| № | Код | Вид в браузере |
| 5.13.10 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke10.svg
</desc>
<polyline points="20,80 50,20 80,80"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter" />
</svg>
|
![]() |
| Описание | ||
Атрибут со значением , принятым по умолчанию. |
||
| № | Код | Вид в браузере |
| 5.13.11 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke11.svg
</desc>
<polyline points="20,80 50,20 80,80"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="round" />
</svg>
|
![]() |
| Описание | ||
Атрибут со значением round, задающим сглаженный изгиб. |
||
| № | Код | Вид в браузере |
| 5.13.12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke12.svg
</desc>
<polyline points="20,80 50,20 80,80"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="bevel" />
</svg>
|
![]() |
| Описание | ||
Атрибут со значением bevel, задающим рубленый изгиб. |
||
| № | Код | Вид в браузере |
| 5.13.13 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="600"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример stroke13.svg
</desc>
<line x1="70" y1="0" x2="70" y2="700"
stroke="black" stroke-width="1"/>
<line x1="95" y1="0" x2="95" y2="700"
stroke="black" stroke-width="1"/>
<polyline points="10,30 70,50 10,70"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="1" />
<polyline points="10,130 70,150 10,170"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="2" />
<polyline points="10,230 70,250 10,270"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="3" />
<polyline points="10,330 70,350 10,370"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="4" />
<polyline points="10,430 70,450 10,470"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="5" />
<polyline points="10,530 70,550 10,570"
stroke="red" stroke-width="15"
fill="none" stroke-linejoin="miter"
stroke-miterlimit ="6" />
</svg>
|
![]() |
| Описание | ||
В данном случае значения атрибута до четырех задают рубленый изгиб, равные и больше четырех - обычный. |
||
Элемент предназначен для создания стрелок, в качестве оформления которых может использоваться графический элемент или группа элементов. Определение маркера выглядит следующим образом:
<defs>
<marker id="myMarker" markerWidth="length" markerHeight="length"
refX="coordinate" refY="coordinate" orient="auto">
<!--Оформление маркера-->
</marker>
</defs>
<line x1="10" y1="10" x2="130" y2="10" stroke="red" stroke-width="2"
marker-end="url(#myMarker)"/>
Атрибут помещает в конец линии графический элемент, используемый в качестве оформления маркера. Описания атрибутов этого элемент приводятся в табл. 5.14.
| № | Название |
|---|---|
| 5.14.1 | markerWidth, markerHeight |
| Описание | |
| Ширина и высота фигуры, применяемой для оформления маркера. | |
| Диапазон значений | |
<length> |
|
| Значение по умолчанию | |
3 |
|
| № | Название |
| 5.14.2 | refX, refY |
| Описание | |
| Координаты верхней левой точки фигуры. | |
| Диапазон значений | |
< |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 5.14.3 | orient |
| Описание | |
| Поворот маркера вокруг центра. | |
| Диапазон значений | |
<angle> |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 5.14.4 | , , |
| Описание | |
| Расположение маркера на линии - в начале, конце или середине. | |
| Диапазон значений | |
| - | |
| Значение по умолчанию | |
| - |
Маркер, который был определен один раз, может применяться для многих линий в одном
| № | Код | Вид в браузере |
|---|---|---|
| 5.15.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker1.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="5" markerHeight="5"
refX="0" refY="2.5" orient="auto">
<polygon points="0,0, 5,2.5 0,5" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="20" markerHeight="20"
refX="0" refY="10" orient="auto">
<polygon points="0,0, 20,10 0,20" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="10" x2="130" y2="10"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="50" x2="130" y2="50"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="90" x2="130" y2="90"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Несколько маркеров, различающихся лишь значениями атрибутов markerWidth и markerHeight. |
||
| № | Код | Вид в браузере |
| 5.15.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker2.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="-5" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="5" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Горизонтальное позиционирование маркера относительно линии при помощи атрибутов refX и refY. |
||
| № | Код | Вид в браузере |
| 5.15.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker3.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="0" refY="0" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="0" refY="10" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Вертикальное позиционирование маркера относительно линии при помощи атрибутов refX и refY. |
||
| № | Код | Вид в браузере |
| 5.15.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker4.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="-20">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="20">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-end="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)"/>
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
Атрибут orient отвечает за поворот маркера. |
||
| № | Код | Вид в браузере |
| 5.15.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker5.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker2"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
<marker id="myMarker3"
markerWidth="10" markerHeight="10"
refX="0" refY="5" orient="auto">
<polygon points="0,0, 10,5 0,10" fill="none"
stroke="blue" stroke-width="1"/>
</marker>
</defs>
<line x1="10" y1="15" x2="130" y2="15"
stroke="red" stroke-width="2"
marker-start="url(#myMarker1)"/>
<line x1="10" y1="55" x2="130" y2="55"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)" />
<line x1="10" y1="95" x2="130" y2="95"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"
marker-start="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
| Размещение маркера относительно центра линии. | ||
| № | Код | Вид в браузере |
| 5.15.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="180" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример marker6.svg
</desc>
<defs>
<marker id="myMarker1"
markerWidth="25" markerHeight="25"
refX="-2230" refY="400" orient="auto"
viewBox="0 0 1000 800">
<circle cx="500" cy="400" r="300" fill="lightskyblue"
stroke="blue" stroke-width="30"/>
<ellipse cx="500" cy="500" rx="150" ry="100"
fill="none" stroke="blue" stroke-width="30"/>
<rect x="300" y="370" width="400" height="130"
fill="lightskyblue"/>
<ellipse cx="350" cy="300" rx="100" ry="50"
fill="white" stroke="blue" stroke-width="30"/>
<ellipse cx="650" cy="300" rx="100" ry="50"
fill="white" stroke="blue" stroke-width="30"/>
<circle cx="350" cy="300" r="25" fill="black"/>
<circle cx="650" cy="300" r="25" fill="black"/>
</marker>
<marker id="myMarker2" markerWidth="60" markerHeight="60"
refX="100" refY="38" orient="auto" viewBox="0 0 200 100">
<polygon fill="red"
points="100,10 105.8,27.2 123.8,27.2 109.4,38
114.6,55.2 100,45 85.4,55.2 90.6,38
76.2,27.2 94.2,27.2" />
</marker>
<defs>
<radialGradient id="MyGradient" fx="25%" fy="25%">
<stop offset="0%" stop-color="white"/>
<stop offset="100%" stop-color="blue"/>
</radialGradient>
</defs>
<marker id="myMarker3"
markerWidth="15" markerHeight="15"
refX="37.5" refY="70" orient="auto"
viewBox="0 0 150 150">
<circle cx="75" cy="75" r="70" fill="url(#MyGradient)" />
</marker>
</defs>
<line x1="10" y1="20" x2="130" y2="30"
stroke="red" stroke-width="2"
marker-start="url(#myMarker1)"/>
<line x1="10" y1="60" x2="130" y2="70"
stroke="red" stroke-width="2"
marker-end="url(#myMarker2)" />
<line x1="10" y1="100" x2="130" y2="110"
stroke="red" stroke-width="2"
marker-end="url(#myMarker3)"
marker-start="url(#myMarker3)"/>
</svg>
|
![]() |
| Описание | ||
| В качестве фигуры для оформления маркера может выступать группа простых элементов. | ||
В Лекции 2 мы рассматривали объединении отдельных элементов в группы. Это очень удобный способ объединения фигур для задания координат, применения атрибутов и как мы увидим в следующих лекциях применения трансформаций. Но существует еще один способ объединения фигур, позволяющий создавать свои собственные элементы. Для них можно задавать цвет заливки, контура, размеры - словом поступать с ними так, как и в случае определения обычных элементов. Рассмотрим следующий фрагмент кода:
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15,50 L 45, 50 M 30, 30 L 30, 75 M 30,
75 L 40, 90 M 30, 75 L 20, 90"></path>
<circle cx="30" cy="30" r="10"/>
</symbol>
</defs>
<use xlink:href="#mySymbol" x="0" y="10" width="100"
height="150" fill="pink" stroke="red" stroke-width="3"/>
Внутри секции defs помещается определение элемента symbol, содержащее окружность и элемент Path. Координаты этих элементов определяются в собственной системе - для этого вводится атрибут viewBox. Созданный символ используется в use и атрибута xlink:href. Размеры символа можно менять без соблюдения пропорций - для этого в его определении включен атрибут preserveAspectRatio со значением none. В табл. 5.16 приводятся примеры использования символов.
| № | Код | Вид в браузере |
|---|---|---|
| 5.16.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример symbol1.svg
</desc>
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15, 50 L 45, 50 M 30, 30 L 30, 75
M 30, 75 L 40, 90 M 30, 75 L 20, 90">
</path>
<circle cx="30" cy="30" r="10"/>
</symbol>
</defs>
<use xlink:href="#mySymbol" x="0" y="10"
width="150" height="150"/>
<use xlink:href="#mySymbol" x="50" y="10"
width="300" height="150"/>
<use xlink:href="#mySymbol" x="50" y="90"
width="150" height="300"/>
</svg>
|
![]() |
| Описание | ||
| Применение символа с заданием различных геометрических размеров. По умолчанию фигуры заливаются черным цветом с толщиной линий в 1 пиксел. | ||
| № | Код | Вид в браузере |
| 5.16.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример symbol2.svg
</desc>
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15, 50 L 45, 50 M 30, 30 L 30, 75
M 30, 75 L 40, 90 M 30, 75 L 20, 90">
</path>
<circle cx="30" cy="30" r="10"/>
</symbol>
</defs>
<use xlink:href="#mySymbol" x="0" y="10"
width="100" height="150" fill="pink"
stroke="red" stroke-width="3"/>
<use xlink:href="#mySymbol" x="50" y="80"
width="70" height="70" fill="pink"
stroke="red" stroke-width="2"/>
<use xlink:href="#mySymbol" x="80" y="80"
width="70" height="70" fill="lightblue"
stroke="blue" stroke-width="2"/>
<use xlink:href="#mySymbol" x="100" y="0"
width="120" height="160" fill="lightblue"
stroke="blue" stroke-width="3"/>
</svg>
|
![]() |
| Описание | ||
| Применение символа с заданием геометрических размеров, а также заливки и контура. | ||
| № | Код | Вид в браузере |
| 5.16.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title> Лекция 5. Рисование</title>
<desc>
Пример symbol3.svg
</desc>
<defs>
<symbol id="mySymbol" viewBox="0 0 100 100"
preserveAspectRatio="none">
<path d="M 15, 50 L 45, 50 M 30, 30 L 30, 75
M 30, 75 L 40, 90 M 30, 75 L 20, 90">
</path>
<circle cx="30" cy="30" r="10"/>
</symbol>
<symbol id="myFamily">
<use xlink:href="#mySymbol" x="0" y="10"
width="100" height="150" fill="pink"
stroke="red" stroke-width="3"/>
<use xlink:href="#mySymbol" x="50" y="80"
width="70" height="70" fill="pink"
stroke="red" stroke-width="2"/>
<use xlink:href="#mySymbol" x="80" y="80"
width="70" height="70" fill="lightblue"
stroke="blue" stroke-width="2"/>
<use xlink:href="#mySymbol" x="100" y="0"
width="120" height="160" fill="lightblue"
stroke="blue" stroke-width="3"/>
</symbol>
</defs>
<use xlink:href="#myFamily" x="0" y="0"
width="150" height="150"/>
<use xlink:href="#myFamily" x="0" y="120"
width="150" height="150"/>
<use xlink:href="#myFamily" x="0" y="240"
width="150" height="150"/>
</svg>
|
![]() |
| Описание | ||
| Применение вложенных символов. | ||
Элемент clipPath предназначен для отсекания заданной областью части изображения. Этот инструмент хорошо знаком пользователям графических программ, например в Adobe Photoshop для таких задач имеются специальные инструменты (рис. 5.5):
(рис 5.5) Инструмент горизонтальный текст-маска в программе Adobe PhotoshopФрагмент кода для элемента clipPath выглядит так:
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
Внутри элемента определяется фигура, которая будет ограничивать изображения. Элемент image предназначен для помещения в clipPath.
| № | Код | Вид в браузере |
|---|---|---|
| 5.17.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath1.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание части изображения окружностью. | ||
| № | Код | Вид в браузере |
| 5.17.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath2.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<polygon points="20,10 280,10 20, 190 280,190"
stroke="red" stroke-width="3" fill="lightpink"/>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
Отсекание части изображения элементов polygon. (См. polygon3. |
||
| № | Код | Вид в браузере |
| 5.17.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath3.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="100" cy="100" r="90"></circle>
<circle cx="200" cy="100" r="90"></circle>
</clipPath>
</defs>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
При наложении двух элементов, определяемых в clipPath, занимаемая ими площадь объединяется. |
||
| № | Код | Вид в браузере |
| 5.17.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath4.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="100" cy="100" r="90"></circle>
<circle cx="200" cy="100" r="90"></circle>
</clipPath>
</defs>
<rect width="300" height="200" x="0" y="0" fill="black">
</rect>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Для оформления можно использовать дополнительные элементы. | ||
| № | Код | Вид в браузере |
| 5.17.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath5.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<rect width="300" height="200" x="0" y="0" fill="pink">
</rect>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
<circle cx="150" cy="100" r="90" fill="none"
stroke="red" stroke-width="5" stroke-dasharray="5"/>
</svg>
|
![]() |
| Описание | ||
| Для последовательности элементов, среди которых имеется элемент image, справедлив тот же самый |
||
| № | Код | Вид в браузере |
| 5.17.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath6.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<text x="2" y="150" font-family="Arial" font-size="150">
АБВ
</text>
</clipPath>
</defs>
<image x="0" y="0" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Отсекание части изображения текстом. | ||
| № | Код | Вид в браузере |
| 5.17.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример clipPath7.svg
</desc>
<defs>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<text x="2" y="150" font-family="Arial" font-size="150">
АБВ
</text>
</clipPath>
</defs>
<rect width="300" height="200" x="0" y="0" fill="yellow">
</rect>
<image x="0" y="0" width="291" height="195"
clip-path="url(#myclipPath)" xlink:href="sea2.jpg"/>
<text x="2" y="150" font-family="Arial" font-size="150"
fill="none" stroke="orange" stroke-width="3">
АБВ
</text>
</svg>
|
![]() |
| Описание | ||
| Отсекание части изображения текстом с оформлением. | ||
При работе с clipPath можно было заметить, что внутреннее оформление фигуры, определяемой внутри элемента, игнорируется. Элемент mask является инструментом, поддерживающим все свойства элемента clipPath с учетом графической структуры заполнителя. Фрагмент кода для элемента mask выглядит так:
<defs>
<mask id="myMask">
<circle cx="150" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
Здесь в качестве заливки фигуры-заполнителя используется
| № | Код | Вид в браузере |
|---|---|---|
| 5.18.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask1.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="0%" stop-color="white" stop-opacity="1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</radialGradient>
<!--Объект mask-->
<mask id="myMask">
<circle cx="150" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Применение в качестве заполнителя маски окружности с градиентной заливкой. | ||
| № | Код | Вид в браузере |
| 5.18.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask2.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="80%" stop-color="white" stop-opacity="1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</radialGradient>
<!--Объект mask-->
<mask id="myMask">
<circle cx="150" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
| Применение в качестве заполнителя маски окружности с градиентной заливкой. Уменьшением размера градиентной области достигается увеличение площади открытой поверхности. | ||
| № | Код | Вид в браузере |
| 5.18.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask3.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="80%" stop-color="white"
stop-opacity="1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</radialGradient>
<!--Объект mask-->
<mask id="myMask">
<circle cx="100" cy="100" r="90" fill="url(#myGradient)">
</circle>
<circle cx="200" cy="100" r="90" fill="url(#myGradient)">
</circle>
</mask>
</defs>
<image x="10" y="5" width="291" height="195"
mask="url(#myMask)" xlink:href="sea2.jpg"/>
</svg>
|
![]() |
| Описание | ||
Так же, как и в случае clipPath, при использовании нескольких фигур в качестве заполнителя их площади объединяются. |
||
| № | Код | Вид в браузере |
| 5.18.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример noMask1.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<radialGradient id="myGradient">
<stop offset="80%" stop-color="blue"
stop-opacity="0"/>
<stop offset="100%" stop-color="blue"
stop-opacity="1"/>
</radialGradient>
<!--Объект clipPath-->
<clipPath id="myclipPath">
<circle cx="150" cy="100" r="90">
</circle>
</clipPath>
</defs>
<rect width="300" height="200"
x="0" y="0" fill="blue"></rect>
<image x="10" y="5" width="291" height="195"
clip-path="url(#myclipPath)"
xlink:href="sea2.jpg"/>
<circle cx="150" cy="100" r="90"
fill="url(#myGradient)">
</circle>
</svg>
|
![]() |
| Описание | ||
При использовании заполнителя, заполненного градиентом любого цвета, на рисунке заметно уменьшение прозрачности белого цвета. Для получения нужного цвета используется комбинация обычного элемента clipPath и наложения |
||
| № | Код | Вид в браузере |
| 5.18.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 5. Рисование</title>
<desc>
Пример mask4.svg
</desc>
<defs>
<!--Градиент для заливки маски-->
<linearGradient id="myGradient" x1="0%"
y1="0%" x2="0%" y2="100%" >
<stop offset="0%" stop-color="white"
stop-opacity="1"/>
<stop offset="100%" stop-color="white"
stop-opacity="0"/>
</linearGradient>
<!--Объект mask-->
<mask id="myMask">
<rect x="0" y="0" width="300"
height="200" fill="url(#myGradient)"/>
</mask>
</defs>
<text x="2" y="150" font-family="Arial"
font-size="150" fill="red" mask="url(#myMask)">
АБВ
</text>
</svg>
|
![]() |
| Описание | ||
| Маскированный текст. | ||
Мы закончили рассмотрение основных возможностей рисования, связанных с простой графикой.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.