Если бы ваш путь был всего лишь одной кривой, которая проходила с 12 до 10 часов, то это было бы легко. Вы можете просто добавить stroke-linecap="round"
.
<svg xmlns="http://www.w3.org/2000/svg">
<path d="M 80 18.75 A 61.25 61.25 0 1 1 30.45 44.00"
fill="none" stroke="black" stroke-width="17.5" stroke-linecap="round"></path>
</svg>
К сожалению, ваша фигура не такая. Это замкнутая фигура, которая вращается по часовой стрелке с 12 до 10 часов, рисует линию к внутреннему радиусу, затем дуга против часовой стрелки снова возвращается к 12 часам. Добавление закругленных концов несколько сложнее.
Вам нужно будет добавить еще одну дугу, где сейчас находится L
. И вставьте еще один перед финалом Z
.
<svg xmlns="http://www.w3.org/2000/svg">
<path d="M 80 10
A 70 70 0 1 1 23.368810393753677 38.855032339526886
A 8.75 8.75 0 1 1 37.52660779531526 49.14127425464517
A 52.5 52.5 0 1 0 80 27.5
A 8.75 8.75 0 1 1 80 10
Z"></path>
</svg>
Линия
L 37.52660779531526 49.14127425464517
заменяется дугой
A 8.75 8.75 0 1 1 37.52660779531526 49.14127425464517
8.75
- это радиус дуги. Это половина "толщины" вашей фигуры. То есть. половина расстояния 17,5 между вашей внешней и внутренней дугой.
Нет второй линии, которая закрывает промежуток от внутренней до внешней дуги в 12 часов. Это неявно делается командой Z
close shape. Поэтому мы должны добавить дополнительную дугу в конце, непосредственно перед Z
. Это дуга с тем же радиусом, что и раньше, которая заканчивается в начальной точке фигуры (т. Е. M 80 10
).
A 8.75 8.75 0 1 1 80 10
Я сделал это вручную для вас сейчас. Это было довольно легко для меня, потому что я знаком с тем, как работают SVG-пути. Если вам нужно сделать это для произвольных путей, то это будет не так просто, как этот оказался.