SVG позволяет рисовать прямые линии с помощью элемента < line >. Нужно только задать X и Y координаты начальных и конечных точек линий. Координаты допускается указывать без единиц измерения, в этом случае они будут расцениваться как пиксели, или явно указать единицы измерения (pt, pc, cm, mm, em, in).
1 |
<line x1="20" y1="80" x2="140" y2="80" style="stroke: #E15720; stroke-width: 4px;" /> |
Атрибут | Описание |
X1 | Начальная точка линии по оси абцисс |
Y1 | Начальная точка линии по оси ординат |
X2 | Конечная точка линии по оси абцисс |
Y2 | Конечная точка линии по оси ординат |
1 2 3 4 5 6 7 8 |
<g style="stroke: #E15720; stroke-width: 4px;"> <!-- Vertical line --> <line x1="80" y1="10" x2="80" y2="150" /> <!-- Left Diagonal line --> <line x1="40" y1="60" x2="70" y2="20" /> <!-- Right Diagonal line --> <line x1="90" y1="20" x2="120" y2="60" /> </g> |
Цвет, прозрачность линии
Все параметры оформления линий задаются с помощью стилей внутри тега
style = ” “>. В примере ниже задается цвет линий. Ширина для всех линий задается “stroke-width” внутри тега группы <g >
1 2 3 4 5 6 7 8 9 10 11 |
<g stroke-width="10"> <line x1="120" y1="50" x2="188" y2="135" style="stroke: #4DFF6E; " /> <line x1="120" y1="50" x2="180" y2="155" style="stroke: #97FF20; " /> <line x1="120" y1="50" x2="160" y2="175" style="stroke: #F3FF14; " /> <line x1="120" y1="50" x2="140" y2="185" style="stroke: #FFBF1C; " /> <line x1="120" y1="50" x2="120" y2="190" style="stroke: red; " /> <line x1="120" y1="50" x2="100" y2="185" style="stroke: #DD2E91;" /> <line x1="120" y1="50" x2="80" y2="175" style="stroke: #992ADD; " /> <line x1="120" y1="50" x2="60" y2="160" style="stroke: #4B23DD; " /> <line x1="120" y1="50" x2="50" y2="135" style="stroke: #1FA7DD; " /> </g> |
Прозрачность линий задается параметром – stroke-opacity: от “0” – полностью прозрачно, до “1” – непрозрачно 100%.
1 2 3 4 5 6 7 8 9 |
<!-- line opacity --> <g stroke-width="10" stroke = "#00540A"> <line x1="60" y1="65" x2="170" y2="65" style=" stroke-opacity: 0.2" /> <line x1="60" y1="85" x2="170" y2="85" style=" stroke-opacity: 0.4" /> <line x1="60" y1="105" x2="170" y2="105" style=" stroke-opacity: 0.6" /> <line x1="60" y1="125" x2="170" y2="125" style=" stroke-opacity: 0.8" /> <line x1="60" y1="145" x2="170" y2="145" style=" stroke-opacity: 0.9" /> <line x1="60" y1="165" x2="170" y2="165" style=" stroke-opacity: 1.0" /> </g> |
Пунктирные линии
Пунктирные линии реализуются с помощью атрибута stroke-dasharray. Первая цифра отвечает за длину черточки, вторая за пробел между черточками.
Комбинируя этими параметрами можно получить различные виды пунктирных линий, как показано на Рис.5 группа 1.
1 2 3 |
<line x1="60" y1="50" x2="180" y2="50" style="stroke-dasharray: 10 5; stroke: black; stroke-width: 4px;" /> <line x1="60" y1="60" x2="180" y2="60" style="stroke-dasharray: 5 5; stroke: black; stroke-width: 4px;" /> <line x1="60" y1="70" x2="180" y2="70" style="stroke-dasharray: 3 3; stroke: black; stroke-width: 4px;" /> |
Обратите внимание на группу 2. Там показано, как можно соединить две прерывистые линии, чтобы получить одну пёструю ленту. Длина и пробелы обеих линии заданы с одинаковыми размерами – 10px, но начало второй линии сдвинуто относительно первой линии на 10px, поэтому черточка второй линии совмещается с пробелом первой линии.
1 2 3 4 5 6 |
<!-- линии отдельно - разнесены по высоте. Начало второй линии смещено --> <line x1="60" y1="90" x2="180" y2="90" style="stroke-dasharray: 10 10; stroke: yellow; stroke-width: 4px;" /> <line x1="70" y1="100" x2="190" y2="100" style="stroke-dasharray: 10 10; stroke: red; stroke-width: 4px;" /> <!-- линии соединяются по высоте --> <line x1="60" y1="120" x2="180" y2="120" style="stroke-dasharray: 10 10; stroke: yellow; stroke-width: 4px;" /> <line x1="70" y1="120" x2="190" y2="120" style="stroke-dasharray: 10 10; stroke: red; stroke-width: 4px;" /> |
В группе 4 на Рис.5 показаны четыре цифровых параметра атрибута stroke-dasharray:20 5 10 10. Первый параметр, 20 – длина черточки, 5 – длина пробела, затем 10 – длина черточки и 10 -длина пробела. Далее всё сначала – 20 длина черточки и т.д.
1 2 3 |
<!-- Верхняя линия имеет 2 параметра, нижняя линия с 4 параметрами. --> <line x1="60" y1="180" x2="190" y2="180" style="stroke-dasharray: 20 5 ; stroke: blue; stroke-width: 4px;" /> <line x1="60" y1="187" x2="190" y2="187" style="stroke-dasharray: 20 5 10 10; stroke: blue; stroke-width: 4px;" /> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!-- gruppe 1 stroke-dasharray --> <text x="65" y="60" style="font-family: Arial; font-size: 16px; stroke:green; ">1 </text> <line x1="40" y1="40" x2="200" y2="200" style="stroke-dasharray: 10 10; stroke: yellow; stroke-width: 5px;" /> <line x1="45" y1="45" x2="195" y2="195" style="stroke-dasharray: 10 10; stroke: red; stroke-width: 5px;" /> <!-- gruppe 2 --> <text x="165" y="60" style="font-family: Arial; font-size: 16px; stroke:green; ">2 </text> <line x1="200" y1="40" x2="40" y2="200" style="stroke-dasharray: 10 10; stroke: yellow; stroke-width: 5px;" /> <line x1="195" y1="45" x2="45" y2="195" style="stroke-dasharray: 10 10; stroke: red; stroke-width: 5px;" /> <!-- gruppe 3 --> <text x="185" y="110" style="font-family: Arial; font-size: 16px; stroke:green; ">3 </text> <line x1="40" y1="120" x2="200" y2="120" style="stroke-dasharray: 10 10; stroke: blue; stroke-width: 5px;" /> <line x1="50" y1="120" x2="200" y2="120" style="stroke-dasharray: 10 10; stroke: red; stroke-width: 5px;" /> <!-- gruppe 4 --> <text x="130" y="195" style="font-family: Arial; font-size: 16px; stroke:green; ">4 </text> <line x1="120" y1="40" x2="120" y2="200" style="stroke-dasharray: 10 10; stroke: yellow; stroke-width: 5px;" /> <line x1="120" y1="50" x2="120" y2="200" style="stroke-dasharray: 10 10; stroke: blue; stroke-width: 5px;" /> </svg> |
Атрибут stroke-linecap
Этот атрибут обеспечивает внешний вид концов линий см.Рис.7. Еще для примера, см.Рис.3, где можно улучшить внешний вид линий, сделав их концы круглыми, используя stroke-linecap=”round” см.Рис.8.
1 2 3 4 5 6 7 8 9 10 |
<text x="50" y="60" style="font-family: Arial; font-size: 14px; stroke:orange; ">stroke-linecap: square </text> <line x1="60" y1="80" x2="180" y2="80" style="stroke-linecap: square; stroke: black; stroke-width:15px;" /> <text x="50" y="105" style="font-family: Arial; font-size: 14px; stroke:orange; ">stroke-linecap: round </text> <line x1="60" y1="120" x2="180" y2="120" style="stroke-linecap: round; stroke: black; stroke-width:15px;" /> <text x="50" y="145" style="font-family: Arial; font-size: 14px; stroke:orange; ">stroke-linecap: butt </text> <line x1="60" y1="160" x2="180" y2="160" style="stroke-linecap: butt; stroke: black; stroke-width:15px;" /> <!-- направляющие линии --> <line x1="60" y1="40" x2="60" y2="200" style="stroke-linecap: square; stroke: red; stroke-width:1px;" /> <line x1="180" y1="40" x2="180" y2="200" style="stroke-linecap: square; stroke: red; stroke-width:1px;" /> |