【发布时间】:2021-01-05 19:52:10
【问题描述】:
我正在尝试在 SVG 中绘制空圆圈作为线条的标记。我遇到的问题是我可以看到空圆圈内的线条。我怎样才能“擦除”它? 我考虑过的选项:
- 将线条调整为更短,并将标记放置在线条“外侧”。不幸的是,这不适用于我的场景。我有任意行作为输入(可能是任何可能的路径元素),在一般情况下计算“较短”行非常困难。
- 我可以创建一个基本相同的黑色线条和较小尺寸的标记用作“孔”的蒙版。这样做的问题是,我基本上必须复制掩码中的所有线条,如果标记的形状比圆形更复杂,这也会变得相当复杂。
还有什么我可以尝试的吗?
<svg width="200" height="200">
<marker id="line-start" markerWidth="14" markerHeight="14" refX="14" refY="7" markerUnits="userSpaceOnUse" orient="auto-start-reverse" overflow="visible">
<circle fill="none" stroke="#666" cx="7" cy="7" r="7" />
</marker>
<path stroke="#666" marker-start="url(#line-start)" marker-end="url(#line-start)" stroke-width="2" d="M10,100 L 190,100" />
</svg>
【问题讨论】:
-
为什么不添加一个与背景颜色相同的填充?
-
因为背景可以是图案/图像等
标签: javascript svg