来源:自学PHP网 时间:2018-02-07 18:28 作者: 阅读:次
[导读] SVG填充模式是指使用某种图像作为模式来填充SVG图形。这种模式可以是SVG图形或位图。...
SVG填充模式是指使用某种图像作为模式来填充SVG图形。这种模式可以是SVG图形或位图。 其实SVG填充模式所做的事情就是使用某种图案反复的填充整个SVG图形,就像PhotoShop中的“图案图章工具”所做的那样。 填充模式的例子下面是一个简单的SVG填充模式的例子: <defs> <pattern id="pattern1" x="10" y="10" width="20" height="20" patternUnits="userSpaceOnUse" > <circle cx="10" cy="10" r="10" style="stroke: none; fill: #0000ff" /> </pattern> </defs> <rect x="10" y="10" width="100" height="100" style="stroke: #000000; fill: url(#pattern1);" /> 在上面的代码中, 然后,在下面的 上面的代码得到的结果如下: 现在,圆形在矩形内部从左向右,从上向下反复不断的填充矩形。 填充模式的X,Y和width,height属性
下面的例子和前面的例子类似,但是 <defs> <pattern id="pattern2" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse" > <circle cx="10" cy="10" r="10" style="stroke: none; fill: #0000ff" /> </pattern> </defs> <rect x="10" y="10" width="100" height="100" style="stroke: #000000; fill: url(#pattern1);" /> 得到的结果如下所示: 注意观察,现在这个模式从矩形的左上角开始,第一个圆形只会显示1/4。通过调整
在下面的例子中,我们将 如果将 如果将上面的例子中的 嵌套填充模式SVG的填充模式也可以进行嵌套,这样会在一个填充模式的内部使用另一个填充模式。来看下面的例子,在一个矩形内部使用圆形的填充模式,而圆形填充模式的内部又嵌套一个矩形的填充模式。 <defs> <pattern id="innerPattern" x="3" y="3" width="9" height="9" patternUnits="userSpaceOnUse" > <rect x="0" y="0" width="6" height="6" style="stroke: none; fill: #ff0000;" /> </pattern> <pattern id="outerPattern" x="12" y="12" width="25" height="25" patternUnits="userSpaceOnUse" > <circle cx="10" cy="10" r="10" style="stroke: #0000ff; fill: url(#innerPattern)" /> </pattern> </defs> <rect x="10" y="10" width="100" height="100" style="stroke: #000000; fill: url(#outerPattern);" /> 上面代码的返回结果如下: 填充模式的转换你可以使用标准的SVG转换函数来对SVG填充模式进行转换。可以通过 <defs> <pattern id="transformedPattern" x="10" y="10" width="20" height="20" patternUnits="userSpaceOnUse" patternTransform="rotate(35)" > <circle cx="10" cy="10" r="10" style="stroke: none; fill: #0000ff" /> </pattern> </defs> <rect x="10" y="10" width="100" height="100" style="stroke: #000000; fill: url(#transformedPattern);" /> 在这个例子中定义了一个简单的模式,并在将它填充到矩形之前旋转35度。得到的结果如下所示: 返回SVG教程目录 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com