svg - 用另一个 SVG 形状填充 SVG 形状

标签 svg shapes fill

是否可以使用一个 SVG 形状作为另一个形状的填充?

最佳答案

您想使用 SVG Pattern .见 this example :

<svg viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <pattern id="TrianglePattern" patternUnits="userSpaceOnUse"
             x="0" y="0" width="100" height="100"
             viewBox="0 0 10 10" >
      <path d="M0,0 L7,0 L3.5,7 z" fill="red" stroke="blue" />
    </pattern> 
  </defs>

  <!-- The ellipse is filled using a triangle pattern paint server
       and stroked with black -->
  <ellipse fill="url(#TrianglePattern)" stroke="black" stroke-width="5"  
           cx="400" cy="200" rx="350" ry="150" />
</svg>

注意:

  • viewBox<pattern>将剪辑绘制的内容。 (如示例中所示,每个三角形的顶部笔划和左上角都被稍微隐藏了。)

  • viewBoxwidth 的大小不同和 height您正在有效地缩放图案中图形的大小。 (该示例将图案中 7 个单位宽的三角形放大了 10 倍,这样,在 700 个单位宽的椭圆的宽度上,只有 7 个(加上填充)可见。)

关于svg - 用另一个 SVG 形状填充 SVG 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048606/

相关文章:

javascript - 将内联 SVG 转换为 Base64 字符串

iphone - 不使用图像的自定义 UIButton 形状

c++ - 使用引用指针中的信息填充 vector

python - 在条件下向前填充列

css - :hover not working on svg when svg is in external file

javascript - 停止 SVG 滚动动画反转

javascript - GoJS 中链接上方的图标

java - 如何用swing绘制 'biohazard'

android - 使用形状或 9 补丁图像创建聊天气泡

r - 如何填充由直线和曲线创建的几何图形?