SVG学习笔记二

坐标系统

1. 视口

视口是指文档打算使用的画布区域。在svg元素上使用width和height属性确定视口的大小,属性值可以仅仅是为数字也可以为带单位的数字(单位可以为em、ex、px、pt、pc、cm、mm和in)也可以为百分比。

2. 默认用户坐标

SVG阅读器会设置一个坐标系统,即原点(0,0)位于视口的左上角,x向右递增,y向下递增。这个坐标系统是一个纯粹的几何系统,点没有大小,网格线被认为是无限细。

在SVG中指定单位并不会影响其他元素中给定单位的坐标,也就是说SVG文档中各个元素的单位可以不统一。

3. 指定用户坐标

摒弃阅读器设置的默认用户坐标,可以自己为视口设置一个用户坐标。通过在svg元素上设置viewBox属性。

viewBox属性由4个数值组成,分别代表要叠加在视口上的最小x、最小y,宽度、高度。

既然可以对svg自定义用户坐标,那么肯定要解决SVG视口长宽比例和viewBox定义的长宽比例不同的问题以及如何对齐问题。这个时候就需要preserveAspectRatio属性了。

如果viewBox的长宽比例与视口的长宽比例不同,那么SVG可以有以下三种选择:

a. 按较小的尺寸等比例缩放图形,使图形完全填充视口

b. 按较大的尺寸等比例缩放图形,并裁减掉超出视口的部分

c. 拉伸和压缩绘图以使其恰好填充视口

默认值为"xMidYMid meet"

·alignment指定轴和位置,x和y方向都有min,mid,max三种方式,分别表示x和y方向的对齐方式,对齐方式由x和y组合指定,共9中方式,也就是alignment共有如下9个取值:

y\x xMin xMid xMax
yMin xMinYMin xMidYMin xMaxYMin
yMid xMinYMid xMidYMid xMaxYMid
yMax xMinYMax xMidYMax xMaxYMax

·meet说明符在图形超出视口时候会对图形适当缩小调整适配可用的空间

·slice说明符直接裁剪超出视口的部分

除了上述操作之外,还可以指定preserveAspectRatio="none",用于在viewBox和视口宽高比不同时缩放图像,此时图像不会被等比例缩放,会被拉伸、挤压、变形。

4. 嵌套坐标系统

可以将另一个svg元素插入到文档中来建立一个新的视口和坐标系统,也就是说svg中可以嵌套另一个svg,每个svg都有自己独立的视口和坐标系统。

你可能感兴趣的:(SVG学习笔记二)