请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
pattern是一种填充类型的svg标签,它包裹在 <defs>...</defs> 标签之内,其内可以组织包括path路径在内的所有svg图形元素,并将这些图形以 fill 或 stroke 方式填充使用对象或给该对象描边。代码结构和运行效果举例如下:
<svg width="200" height="200" style="border: 1px solid;">
<defs>
<pattern id="tri" x="0" y="0" width="20%" height="20%">
<polygon points="20,5 5,30 40,20 20,5" fill="steelblue" />
</pattern>
</defs>
<circle cx="100" cy="100" r="100" fill="url(#tri)" />
</svg>
上面的代码,我们首先创建一个 pattern 元素,它需要放在 <defs>...</defs> 标签的省略号处。pattern 标签拥有 id 标识符,x 和 y 属性定义 pattern 取其内图形的XY坐标位置,width 和 height 属性定义取图形的宽高,注意,默认情况下 width 和 height 属性使用百分比做单位,不然无效。然后我们使用 polygon 多边形标签绘制一个不规则三角形(如果愿意,我们可以绘制组合式图形)。这样,pattern 图案就准备就绪,可以拿去填充其他图形或给其他图形描边了。
pattern的本意是图案,pattern 标签就是设置一个或一组图案,然后以平铺方式拿去给其他图形做图案,这和贴瓷砖、贴窗花差不多是一个道理。从上面效果看,我们应可以感受到 pattern 的宽高和贴图对象(circle)的宽高尺寸的关系:pattern 定义的图案宽高都是20%,这意味着在贴图对象的纵横两个方向都能贴 5 个pattern内定义的图案;本例我们使用的贴图对象是一个圆,有一些三角形被剪切在圆的外面了,定可以数一数横向和纵向直径的三角形个数以证实上面的说法。
作为首次接触,pattern 标签先说这些,后续还有一些问题需要探讨,敬请期待。最后给出一个有趣的pattern动画,它是在上面示例的基础上略作改动完成的:
|