使SVG元素透明(像面具)

Jon*_*mer 4 svg

如何使用多边形作为蒙版,这将使圆圈中的区域透明?我无法管理它

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
    <circle cx="50" cy="50" r="50" />
    <polygon points="20,30 25,20 80,40 80,60 25,80, 20,70 70,50"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

Pau*_*eau 6

面具很简单.它们在这里描述:http://www.w3.org/TR/SVG11/masking.html#Masking

在你的情况下,这只是添加几行的问题.

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
     viewBox="0 0 100 100">

    <circle cx="50" cy="50" r="50" mask="url(#hole)"/>

    <mask id="hole">
       <rect x="0" y="0" width="100" height="100" fill="white"/>
       <polygon points="20,30 25,20 80,40 80,60 25,80, 20,70 70,50" fill="black"/>
    </mask>
</svg>
Run Code Online (Sandbox Code Playgroud)

在蒙版定义中,我们必须添加一个圆形大小的白色矩形以使其<circle>可见(白色表示不透明),然后我们使<polygon>黑色(透明)创建孔.

在这里小提琴