Я использую файл SVG для изображения внутрирегиональных миграционных потоков людей в Нидерландах. Вот что я сделал до сих пор:
Зацикленная стрелка — единственное SVG-изображение, остальные стрелки отрисовываются другими способами. Как видно, петлевая стрелка не имеет черного контура (в отличие от других стрелок). Я хотел бы сделать стиль контура и цвет стрелок однородными.
С этой целью я попытался настроить код SVG-файла, который мне предоставили Билли Кер ( здесь ) и Симбамангу ( здесь ). Это код последнего, который изменяет размер первого таким образом, чтобы его можно было просмотреть в QGIS:
<svg width=".1mm" height=".1mm" version="1.1" viewBox="0 0 2.1694 2.1665" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(.1 0 0 .1 .013859 .018301)" fill="none" image-rendering="auto" stroke="#d40000" stroke-width="2.5862">
<path d="m26.8 13.9a12.8 12.8 0 0 1-10.6 12.6 12.8 12.8 0 0 1-14.3-8.22 12.8 12.8 0 0 1 5.6-15.5 12.8 12.8 0 0 1 16.2 2.81" stop-color="#000000"/>
<path d="m24.7 0.472-0.434 5.65-5.58-0.401" stop-color="#000000" style="font-variation-settings:normal"/>
</g>
</svg>
Это визуализирует статическое изображение цикла. Чтобы сделать его динамичным, я использовал информацию из этого вопроса GIS.SE, чтобы сделать его цвета и контуры изменяемыми в QGIS. Вот скорректированный код:
<svg width=".1mm" height=".1mm" version="1.1" viewBox="0 0 3.1694 3.1665" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(.1 0 0 .1 .013859 .018301)" fill="none" image-rendering="auto" stroke="#d40000" stroke-width="3.0862">
<path d="m26.8 13.9a12.8 12.8 0 0 1-10.6 12.6 12.8 12.8 0 0 1-14.3-8.22 12.8 12.8 0 0 1 5.6-15.5 12.8 12.8 0 0 1 16.2 2.81" stop-color="#000000" stroke-width="param(outline-width) 50" stroke="param(outline) #000" fill="param(fill) #FFF"/>
<path d="m24.7 0.472-0.434 5.65-5.58-0.401" stop-color="#000000" fill="param(fill) #FFF" stroke="param(outline) #000" stroke-width="param(outline-width) 1"/>
</g>
</svg>
Однако этот код создает следующий цикл:
Тогда я удалил
fill="param(fill) #FFF"
части обоих путей, чтобы получить:
К сожалению, я больше не могу изменить цвет стрелок. Поэтому вместо этого я изменил код на:
<svg width=".1mm" height=".1mm" version="1.1" viewBox="0 0 3.1694 3.1665" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(.1 0 0 .1 .013859 .018301)" fill="none" image-rendering="auto" stroke="#d40000" stroke-width="3.0862">
<path d="m26.8 13.9a12.8 12.8 0 0 1-10.6 12.6 12.8 12.8 0 0 1-14.3-8.22 12.8 12.8 0 0 1 5.6-15.5 12.8 12.8 0 0 1 16.2 2.81" stroke="param(outline) #000" stroke-width="param(outline-width) 40"/>
<path d="m24.7 0.472-0.434 5.65-5.58-0.401" fill="param(fill) #FFF" stroke="param(outline) #000" stroke-width="1"/>
</g>
</svg>
Это несколько лучше. Однако это все еще не совсем то, что мне нужно, потому что теперь, когда я меняю цвет обводки на черный, это выглядит так:
Я могу регулировать ширину обводки, но тогда у меня получается очень тонкая стрелка, вместо тонкого контура стрелки.
Я хотел бы иметь код для зацикленной стрелки, который сделал бы ее похожей на другие (незацикленные) стрелки на изображении. Поэтому желательно, чтобы цикл имел:
Вопрос: знаете ли вы, как изменить код SVG-файла зацикленной стрелки таким образом, чтобы он удовлетворял перечисленным выше свойствам? (Первые два свойства являются наиболее важными, третье, возможно, несколько сложнее и чуть менее важно, но было бы неплохо иметь его.)
В Inkscape вы можете выбрать оба пути и выполнить Path > Stroke to path .
Это преобразует штрихи в контуры с заливкой.
Затем выполните Path > Union . Это логическая операция, которая объединит два контура в одну твердую фигуру, т.е. один замкнутый контур с заливкой.
Теперь вы можете применить цветную заливку и тонкую черную обводку, чтобы получить желаемый эффект.
Вот пример очищенного SVG
<?xml version="1.0" encoding="UTF-8"?>
<svg width="28.1mm" height="28mm" version="1.1" viewBox="0 0 28.1 28" xmlns="http://www.w3.org/2000/svg">
<g fill="#ff7f2a" stroke="#000" stroke-width=".159">
<path d="m13.9.08c-.747.00716-1.5.0746-2.24.203-1.58.274-3.14.828-4.6 1.67v-.00207c-5.85 3.39-8.42 10.5-6.09 16.9 2.31 6.35 8.88 10.1 15.5 8.93 6.65-1.16 11.5-6.95 11.5-13.7l-2.23-.0021c-.0041 5.68-4.08 10.5-9.68 11.5h-.0062c-5.61 1.01-11.1-2.15-13.1-7.5v-.0042c-1.97-5.34.187-11.3 5.11-14.2 4.27-2.48 9.53-1.98 13.2 1.05l-2.54-.181-.16 2.22 6.69.48.519-6.76-2.22-.17-.248 3.22c-2.65-2.43-6.09-3.7-9.56-3.67z" />
</g>
</svg>
Скотт
Макс Мюллер
Скотт
Макс Мюллер
Макс Мюллер