Краткий ответ: вы можете получить его, используя пользовательский SVG. Смотрите в нижней части этого поста для одного.
Длинный ответ:
Я считаю, что лучше представить это, чем изменять геометрию линии. Если вы хотите переместить ребро или выполнить другие действия с геометрией, управлять им будет кошмаром, если покачивания являются частью геометрии, а не просто представлением прямой линии.
Вы можете играть с линией маркера стиля. Есть способ легко приблизиться к тому, что вам нужно, и с небольшим усилием, вероятно, можно получить его точно.
Чтобы получить это, вы должны стилизовать линию с двумя линиями маркера. Каждая линия маркера состоит из простого маркера, полукруга. 1-й повернут на 180. Оба установлены прозрачными.
На линии маркера вы указываете, что один из них должен быть смещен, чтобы два символа были нарисованы не друг напротив друга, а рядом. Если вы используете offest = 1/2 * размер интервала, на выходе будет синусоидальная кривая. Я предлагаю вам поиграть с размером интервала, смещением и размерами символов.
Основным ограничением этого подхода является линия диаметра полукругов, которая суммируется с исходной линией. Если ваш фон белый (или любой другой цвет), вы можете добавить третью простую строку, используя цвет фона.
** РЕДАКТИРОВАТЬ **
Другой вариант избавиться от центральной линии - создать новый символ SVG. Я изменил полукруг, только живя закругленной частью. Это работает, хотя эллипс 1/2 может быть более привлекательным. Скриншот был сделан с использованием размера символа 10, интервал 4, смещение 2.
сохраните приведенный ниже код в файле half_circle_line.svg и убедитесь, что путь к svg указан в QGIS // Settings / Options / System / SVG Paths
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="11.2889mm" height="11.2889mm"
viewBox="0 0 32 32"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">
<title>Qt Svg Document</title>
<desc>Generated with Qt</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
<g fill="#ffffff" fill-opacity="0" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="MS Shell Dlg 2" font-size="8.25" font-weight="400" font-style="normal"
>
<path vector-effect="non-scaling-stroke" fill-rule="evenodd" d="M19.1181,16 C19.1181,16 19.1181,14.2779 17.7221,12.8819 16,12.8819 C14.2779,12.8819 12.8819,14.2779 12.8819,16"/>
</g>
</g>
</svg>