【发布时间】:2016-01-15 04:27:11
【问题描述】:
我需要复制这个甜甜圈图:
我看到this 的问题并尝试了给出的解决方案,但由于我在 SVG 方面没有任何经验,因此我无法取得良好的进展。但这显示了我到目前为止所做的事情。 (link here to fiddle)
<svg width="600" height="600">
<defs>
<mask id="innerbevel">
<rect width="100%" height="100%" fill="black"/>
<circle cx="0" cy="0" r="235" fill="white"/>
</mask>
<mask id="centrehole">
<rect x="-100%" y="-100%" width="200%" height="200%" fill="white"/>
<circle cx="0" cy="0" r="195" fill="black"/>
</mask>
<linearGradient id="grad1">
<stop offset="0%" stop-color="#2188cb"/>
<stop offset="100%" stop-color="##2188cb" stop-opacity="0" />
</linearGradient>
</defs>
<g transform="translate(300,300)" mask="url(#centrehole)">
<g>
<path d="M0 0 0 -275 A 275 275 0 0 1 0 275" fill="url(#grad1)"/>
<path d="M0 0 0 275 A 275 275 0 0 1 -275 0" fill="#a6a6a6"/>
<path d="M0 0 -275 0 A 275 275 0 0 1 0 -275" fill="#a6a6a6"/>
<circle cx="0" cy="235" r="40" fill="#2188cb"/>
<circle cx="-235" cy="0" r="40" fill="#a6a6a6"/>
<circle cx="0" cy="-235" r="40" fill="#a6a6a6"/>
</g>
</g>
</svg>
该图最初分为三个,由于我无法解决它,所以我想为第二条和最后一条路径设置相同的颜色..渐变也不是很好..我做不到轻松更改图表的“百分比”。
PS:文本只是一个虚拟文本,我知道它不是图像上的 75%。是的,我的工作一团糟。
帮忙,有人吗?
编辑: 问题是如何让它只有两条路径最接近,就像我正在复制的图像一样?我不太明白路径是如何设置的,以及如何正确设置渐变以跟随路径,因为现在它是线性的。
【问题讨论】:
-
这里的问题是什么?如果是关于改进代码,那么这是错误的地方。
-
这与我刚刚链接的原始 stackoverflow 链接有何不同?我正在尝试复制一个设计,我进行了研究,提供了我迄今为止的工作,并寻求帮助。 ://
-
你没有明确说明你的问题是什么。您所说的只是“我正在尝试复制此图表,这就是我到目前为止所做的”。你有什么问题?
-
至于那个原始的 llnk,很幸运能得到答案……它应该已经关闭了……它甚至没有接近达到 SO 的问题标准。
-
是的,我现在遇到了问题,错误的举动将我的问题建立在错误的例子上。如果有帮助,我现在编辑了我的问题
标签: javascript css svg