我正在尝试创建一个圆,只有它的边缘,分为3部分。
我尝试的结果是:
不太好,我想做的是让这3部分组合在一起形成一个圆的边缘,同时在每个部分之间留有一些空间(如您在左侧所见,该间隙是它应该看起来的样子)
我使用svg和3个路径来完成此操作:
<svg viewBox="0 0 100 100">
<linearGradient id="gradient" x1="0" y1="0" x2="0" y2="100%">
<stop offset="0%" stop-color="#56c4fb" />
<stop offset="100%" stop-color="#0baeff" />
</linearGradient>
<path className="grey" d="M50,90 A30,25 0 0,1 10,90" fill="none" />
<path className="grey" d="M5,80 A30,25 0 0,1 20,50" fill="none" />
<path className="grey" d="M50,50 A30,25 0 0,1 80,90" fill="none" />
</svg>
在这种情况下,为了创建不同的路径,手动计算是不是要走的路?对我来说,复杂的是必须考虑到每个部分之间的小间隙(正如你可以看到左边差距,这是它应该如何绘制)
什么是最简单的方法来计算3条路径的坐标,使他们形成一个圆圈从3普拉特之间的小差距?
2条答案
按热度按时间7hiiyaii1#
在CSS中几乎完全可以做到这一点:画一个圆(或者按照你的例子,画一个椭圆),定义一个属性
pathLength
,以便在CSS中进一步使用,然后创建一个stroke-dasharray
,将笔划平均分为三个虚线和三个间隙。在此示例中,总路径长度被视为30。虚线长度7和间隔长度3相加为10,因此可以重复三次以获得总周长。如果要将笔划划分为长度不均匀的虚线,则虚线阵列可以包含每个虚线的单独长度,如下所示-不均匀的位置为虚线,偶数位置之间为间隔:
第一条虚线从右侧开始向下,
stroke-dashoffset
为正数时,起点逆时针移动。x一个一个一个一个x一个一个二个x
js4nwp542#
可以做,例如,在菲格马?