博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVG图案
阅读量:6800 次
发布时间:2019-06-26

本文共 2934 字,大约阅读时间需要 9 分钟。

前面的话

  给SVG元素应用,除了使用纯色和外,还可以使用图案。本文将详细介绍SVG图案

 

概述

  <pattern>可以实现重复的效果,在canvas中被翻译为模式,而在SVG中被翻译为图案或笔刷

  SVG图案一般用于SVG图形对象的填充fill或描边stroke。这个图形可以是一个SVG元素,也可以是位图图像,通过<pattern>元素在x轴或y轴方向以固定的间隔平铺。

  在pattern元素内部可以包含任何之前包含过的其它基本形状,并且每个形状都可以使用任何样式样式化,包括渐变和半透明

  可以在<pattern>元素内定义图案,然后通过id引用

  下面是一个简单的示例

 

尺寸设置

  从上面的例子中,可以看出width和height是必须的属性,用来表示每一个图案在图形中占据的比例。如上所示,width、height值为0.25,则占据25%的比例,则每行可以有5个图案,每列也可以有5个图案

  如果设置width、height值为0.5,则每行每列都有2个图案

【图案内的图形尺寸】

  如果对图案内的图形尺寸进行设置,将会显示出不同的效果

  下面例子中,则图案width、height值为0.2,即图形每行每列都包含5个图案。因此,每个图案的尺寸是10*10,而图案中的图形circle的半径为5,圆点为(5,5),则正好可以放下一个圆

 

坐标系统

  patternUnits,定义pattern的坐标系统。它的可能值有两个,userSpaceOnUseobjectBoundingBox

  userSpaceOnUse:xywidthheight表示的值都是当前用户坐标系统的值。也就是说,这些值没有缩放,都是绝对值

  objectBoundingBox(默认值):xywidthheight表示的值都是外框的坐标系统(包裹pattern的元素)。也就是说,图案的单位进行了一个缩放,比如:pattern中为1的值,会变成和包裹元素的外框的widthheight一样的大小

  与渐变不同,pattern有第二个属性patternContentUnits,它描述了pattern元素基于基本形状使用的单元系统。它的可能值也有两个,userSpaceOnUse(默认值)objectBoundingBox

  [注意]patternContentUnits的默认值是userSpaceOnUse

  下面是默认值的情况

  如果使用patternUnits和patternContentUnits都使用objectBoundingBox,要保持原图案,则需要进行如下设置

  如果使用patternUnits和patternContentUnits都使用userSpaceOnUse,要保持原图案,则需要进行如下设置

  如果使用patternUnits使用userSpaceOnUse,patternContentUnits使用objectBoundingBox,要保持原图案,则需要进行如下设置

 

位置设置

  SVG图案使用x、y属性来进行位置设置。默认地,x、y属性为0,即图案从左上角开始绘制

  改变x、y的值,如设置为0.1,则从圆心处开始绘制

  如果使用userSpaceOnUse坐标系统,要保持原图案,则需要进行如下设置

 

描边

  当然了,图案pattern除了用于填充,还可以用于描边

  如果图案pattern的宽高设置的恰当,则会出现在边界线的两侧

 

使用图片

  上次所有的实例中,都是使用SVG图形来创建图案。下面将使用一个图像作为SVG图案,该图像宽为50px,高为50px,是两个绿色的正方形组成的棋盘图案

SVG图案

  这里使用了一个<image>元素,然后通过xlink:href属性引用图像

 

图案引用

  使用xlink:href属性,可以在SVG文档中引用另一个图案

  可以通过在一个图案中的图形中引用另一个图案来实现图案嵌套的效果

 

转载于:https://www.cnblogs.com/xiaohuochai/p/7497096.html

你可能感兴趣的文章
Mac 共享 wifi
查看>>
CentOS7 下安装telnet服务
查看>>
APP 上线-打包上传环境配置(接上篇)
查看>>
图片垂直居中,兼容ie6
查看>>
iOS--资料--开源项目及库
查看>>
MBR(Master Boot Record)主引导记录分析
查看>>
词汇小助手V1.1——引入自动翻译和在线词典功能
查看>>
委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件
查看>>
国债期货下跌意味着什么
查看>>
提高rails new时bundle install的速度方法
查看>>
HAOI2006受欢迎的牛
查看>>
抽象类的应用——汽车租赁系统
查看>>
算法67-----环绕字符串中唯一的子字符串【动态规划】
查看>>
问题 G: 心急的C小加
查看>>
gdb查死循环方法
查看>>
购物单
查看>>
再次改进日志类 --!
查看>>
springmvc 实现动态头像上传
查看>>
CF992B Nastya Studies Informatics 数学(因子) 暴力求解 第三道
查看>>
BeagleBone Black开机启动和vnc图形界面
查看>>