SVG радиус границы пути - PullRequest
       12

SVG радиус границы пути

0 голосов
/ 29 августа 2018

Я мог бы немного помочь с установкой border-radius для тега path. Вот текущий код и желаемый результат

<svg xmlns="http://www.w3.org/2000/svg">
    <path d="M 80 10 A 70 70 0 1 1 23.368810393753677 38.855032339526886 L 37.52660779531526 49.14127425464517 A 52.5 52.5 0 1 0 80 27.5 Z"></path>
</svg>

enter image description here

1 Ответ

0 голосов
/ 29 августа 2018

Если бы ваш путь был всего лишь одной кривой, которая проходила с 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-пути. Если вам нужно сделать это для произвольных путей, то это будет не так просто, как этот оказался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...