Я столкнулся с проблемой при увеличении ширины штриха. Когда я использую атрибут paint-order="stroke", это не соответствует моему требованию, потому что ширина штриха увеличивается с обеих сторон (внутри и снаружи). Пожалуйста, посмотрите на прикрепленные изображения.
оригинальный свг: -
Фактический SVG: -
Ожидаемый svg (что является моим требованием): -
Код :-
<html>
<body>
<svg height = "300" width = "500">
<circle cx = "50" cy = "50" r = "40" stroke = "black" stroke-width = "20" paint-order = "stroke" fill = "red" />
<circle cx = "152" cy = "50" r = "40" stroke = "black" stroke-width = "20" paint-order = "stroke" fill = "none" />
<circle cx = "252" cy = "50" r = "40" stroke = "black" stroke-width = "10" paint-order = "stroke" fill = "none" />
</svg>
</body>
</html>
Штрих шириной 20px
круга симметрично расположен по обе стороны от центральной линии. 10px
снаружи, 10 пикселей внутри круга
Круг вверху имеет меньший радиус, равный половине хода нижнего круга 40 - 10 = 30px
Поэтому внутренняя часть обводки нижнего, большего круга будет скрыта. Будет видна только внешняя часть большого круга.
<html>
<body>
<svg height = "300" width = "500">
<!-- Sample circle without overlap -->
<circle cx = "52" cy = "50" r = "40" stroke = "black" stroke-width = "20" paint-order = "stroke" fill = "none" /> >
<circle cx = "152" cy = "50" r = "40" stroke = "blue" stroke-width = "20" paint-order = "stroke" fill = "none" />
<!-- The circle at the top has a smaller radius equal to half the stroke of the lower circle -->
<circle cx = "152" cy = "50" r = "30" stroke = "white" stroke-width = "20" paint-order = "stroke" fill = "none" />
</svg>
</body>
</html>
Да, для круга это будет работать, но какое будет решение, если svg содержит путь вместо круга
@karmarout Вы привели пример с кругами в вопросе. Было бы неплохо принять этот вопрос и задать новый вопрос с путем
сделайте круг больше, а затем вы можете использовать ширину штриха, которую вы хотите/нужно.