我正在尝试用SVG路径画一个甜甜圈。我通过画两条弧和一条线来做到这一点。第一个弧是外圈。它工作正常,直到半径很高。当外圆半径减小时,圆环不会出现。
<svg height="400" width="400">
<path d="M 200 143 A 57 57 0 1 1 199.99994299999997 143 L 199.9999772 177.2000000000114 A 22.8 22.8 1 1 0 200 177.2 z" fill="transparent" stroke="blue" />
</svg>
以下屏幕截图显示原始图像。
我的代码位于this jsfiddle。
答案 0 :(得分:1)
问题是你只是关闭第二个弧。在绘制第二个弧之前,应关闭第一个弧。
演示:
<svg height="400" width="400">
<path d="M 200 143 A 57 57 0 1 1 199 143 z M 199.9999772 177.2000000000114 A 22.8 22.8 1 1 0 200 177.2 z" fill="transparent" stroke="blue" />
</svg>
答案 1 :(得分:0)
我不是100%肯定你打算画的是什么,但是SVG和弧形的一个问题是,当你试图绘制一个完整的圆圈时,你最终会得到开始和结束点的重合,对于渲染引擎将意味着路径段是一个空操作(是的奇怪)并且不会被渲染。要解决此问题,请使用2个弧。
<!DOCTYPE html>
<html>
<body>
<svg height="400" width="400">
<path d="M 200 143 A 57 57 0 1 1 200 257 A 57 57 0 1 1 200 143Z L 200 177 A 22.8 22.8 0 1 0 200 222.6 A 22.8 22.8 0 1 0 200 177 z" fill="transparent" stroke="blue" />
</svg>
</body>
</html>
你的内圈也有一个小的(1度)倾斜(第三个参数),我认为这是无意的。如果您不想要那条垂直线,请将L替换为M.