来源:自学PHP网 时间:2018-02-07 18:26 作者: 阅读:次
[导读] 本文介绍SVG坐标系统和各种SVG图形转换知识。svg图形转换包括图形的缩放,移动,倾斜和旋转。...
SVG坐标系统坐标系统一个普通的笛卡尔坐标系统的坐标原点(0,0)位于左下角位置,X轴方向上向右是正值,向左是负值。Y轴方向上向上是正值,向下是负值。如下图所示: 而SVG的坐标系统坐标原点位于左上角,X轴和笛卡尔坐标系的X轴相同,但是Y轴则刚好相反,如果SVG中点或图形数值增加时往下增长,而不是往上。如下图所示: SVG坐标系统的单位你可以指定在SVG坐标系统值1个单位代表什么。如果你没有明确的指定单位,将会使用像素(px)为单位。下面是SVG元素可以使用的单位:
SVG元素转换-transform属性SVG元素可以被缩放,移动,倾斜和旋转,就像HTML元素可以使用CSS来转换一样。但是因为坐标系统不同,SVG和HTML元素的转换时有差别的。 transform属性
SVG可用的转换有:旋转,位移,倾斜和旋转。SVG的 矩阵你可以在一个SVG元素上通过 matrix(<a> <b> <c> <d> <e> <f>) 上面的声明指定包含6个参数的矩阵变换。 矩阵转换需要使用一些高等数学知识,你可以查看这里了解更多这方面的知识。 位移要移动一个SVG元素,你可以使用 translate(<tx> [<ty>])
下面的例子将一个SVG元素向右移动100个用户单位,向下移动300个用户单位。 <circle cx="0" cy="0" r="100" transform="translate(100 300)" /> 上面的转换代码也可以写为: 缩放你可以使用 scale(<sx> [<sy>])
下面的例子将一个SVG元素放大到原来尺寸的2倍。 <rect width="150" height="100" transform="scale(2)" x="0" y="0" /> 下面的例子将SVG元素水平方向放大2倍,垂直方向缩小一半。 <rect width="150" height="100" transform="scale(2 0.5)" x="0" y="0" /> 同样,我们可以使用逗号来分隔 这里要注意:当一个SVG元素被缩放的时候,整个当前坐标系统也会被同时缩放,导致元素会在viewport中被重新定位。。 倾斜一个SVG元素也可以被倾斜。要倾斜一个SVG元素,你需要使用 skewX(<skew-angle>) skewY(<skew-angle>)
旋转角度使用的是一个 注意,元素倾斜也可能会是元素在viewport中重新定位。 旋转你可以使用 rotate(<rotate-angle> [<cx> <cy>])
在 下面的例子在当前用户坐标系统中将一组SVG元素绕(50,50)中心点旋转45度。 <g id="parrot" transform="rotate(45 50 50)" x="0" y="0"> ...... </g> 在CSS中,你想让一个元素绕它的中心旋转,可以指定旋转中心点为 返回SVG教程目录 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com