SVG 中的遮罩?

发布于 2024-10-22 01:13:33 字数 63 浏览 2 评论 0原文

在 svg 中绘制一个圆形并切出一个切片的最佳方法是什么?这将用于覆盖在另一个彩色圆圈的顶部,作为一种遮蔽效果。

What would be the best way to draw a circle with a slice cut out of it in svg? This would be used to overlay on top of another colored circle as a kind of masking effect.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

他夏了夏天 2024-10-29 01:13:33

也许你最好的选择是使用路径(由 Inkscape 友情提供):

<path fill="red" d="m 134.73897,236.38837 a 100,92.85714 0 1 1 44.86201,86.57396 l 54.68474,-77.743 z">

Probably your best bet is to use a path (kindly provided by Inkscape):

<path fill="red" d="m 134.73897,236.38837 a 100,92.85714 0 1 1 44.86201,86.57396 l 54.68474,-77.743 z">
蘸点软妹酱 2024-10-29 01:13:33
    <svg version="1.1" viewBox="0 0 100 100">
        <defs>
            <mask id="mask" x="0" y="0" width="100" height="100" maskUnits="userSpaceOnUse">
                <circle cx="50" cy="50" r="50" fill="white"/>
                <circle cx="50" cy="50" r="25" fill="black"/>
            </mask>
        </defs>
        <circle cx="50" cy="50" r="50" fill="blue" mask="url(#mask)"/>
    </svg>

在 mask 元素中,有两个圆圈。第一个是您要剪切的大圆圈。注意填充是白色的。这意味着该形状将被填充。

下一个圆较小,将从第一个圆中切掉。注意填充是黑色的。这意味着该形状不会被填充,而是保持透明。

现在这些圆圈只是定义要使用的蒙版,我们仍然需要绘制一个形状来使用蒙版。这是 mask 和 defs 元素之外的最后一个圆圈。

最后,你应该得到一个蓝色圆圈,中间有一个圆孔。

    <svg version="1.1" viewBox="0 0 100 100">
        <defs>
            <mask id="mask" x="0" y="0" width="100" height="100" maskUnits="userSpaceOnUse">
                <circle cx="50" cy="50" r="50" fill="white"/>
                <circle cx="50" cy="50" r="25" fill="black"/>
            </mask>
        </defs>
        <circle cx="50" cy="50" r="50" fill="blue" mask="url(#mask)"/>
    </svg>

Within the mask element, you have two circles. The first is the large circle that you want to cut from. Notice the fill is white. That means that shape will be filled.

The next circle is smaller and will be cut out of the first circle. Notice the fill is black. That means this shape will not be filled and instead be left transparent.

Now those circles are just defining the mask to be used, we still need to draw a shape to use the mask on. That's the last circle outside of the mask and defs element.

In the end, you should get a blue circle with a circular hole cut out of the center.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文