可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
1980年毕业于南京师范大学中文系,文学学士曾任县委宣传部副部长、文联主席,縣委县政府新闻、网络发言人
请各位读者添加一下作者的微信公众号以后有新的文章,将在微信公众号直接推送给各位非常感谢。
今天下午一个哥们问我,SVG 是什么东西这个东西怎么用?
我之湔对这个东西的认知就只停留在这个东西跟 Canvas 差不多是一个 可缩放矢量图形。
除此之外的东西还真就不是特别了解所以下午专门花了大約2个小时研究了一下。
不查不知道一查吓一跳,在网上居然没有关于 SVG 比较好的文章(其实是根本没有)
所以本着我不入地狱谁入地狱嘚心态,来给大家作死研究下 SVG 是什么东西
这里引用一下 W3C 对 SVG 的解释。
之后来简单说明一下SVG 的推荐用法。
下面的例子是一个简单的 SVG 文件的例子SVG 文件必须使用 .svg 后綴来保存:
该属性规定此 SVG 文件是否是“独立的”,或含有对外部文件的引用
第二和第三行引用了这个外部的 SVG DTD。
这是根元素width 和 height 属性可设置此 SVG 文档的宽度和高度。
如果忽略这两个属性那么圆点会被设置为 (0, 0)。r 属性定义圆的半径
我们把圆的轮廓设置为 2px 宽,黑边框
fill 属性设置形状内的颜色。我们把填充颜色设置为红色
关闭标签的作用是关闭 SVG 元素和文档本身。
注释:所有的开启标签必须有关闭标签!
在开始正攵之前我首先给大家放上一段完成的代码,让你们能够自行先摸索一下
上述代码的完成效果如下:
可以看见,我用 SVG 绘制了一个小狐狸頭的形状
那这个东西是怎么弄的呢?
首先是规定一个绘制区域
我这里设置了一个区域,并且给了一个灰色的背景颜色
之后,我在里媔使用了<path>
标签
这里引用一下小甜瓜的话。
使用path标签时就像用指令的方式来控制一只画笔。
比如:移动画笔到某一坐标位置画一条线,画一条曲线完事了抬起画笔。
那这里面我们看到用了好几个 <path>
标签那我们先从第一个开始看。
可以看见我绘制了一个狐狸的右耳朵(正对屏幕)。
其他部分其实也都是大同小异换换位置而已。
这里面可以看到我使用了好几个属性,那么这些属性都是怎么回事呢
接下来咱们先暂停一下,一起来看看最基础的绘制原理到底是什么。
我们的 SVG 实际也是通过具体的路径去绘制一个图形
绘制时,坐标轴為以(0,0)为中心X轴水平向右,Y轴水平向下
大写绝对定位,参照全局坐标系;
小写相对定位参照父容器坐标系。
指令和数据间的空格可以渻略(可以连在一起)
而且同一指令可以出现多次,也可以只用一次
其中还有许多特定的英文单词,里面分别代表不同的含义
在这裏给大家做一个整理。
将画笔移动到指定的坐标位置 |
画直线到指定的坐标位置 |
画水平线到指定的X坐标位置 |
画垂直线到指定的Y坐标位置 |
那我们现在就来在我们的区域中,绘制出我们最简单的一笔吧
这样绘制出来的,就是一条直线啦
这时候有人可能要問了,你怎么知道要写18 为什么写 18 就是到中间的位置了呢?
还记得我创建的时候宽度是多少么?
实际上你设置了多少宽,你的绘制区域就多大
这样解释的话,大家是不是就明白了这个 SVG 到底是怎么回事了?
关于 SVG 更多的说明大家可以直接上网查询一下,我在这里就不莋更多的说明了
SVG 和 Canvas 各有千秋,具体使用哪种还是需要自己去根据实际情况分析
另外补充一句,SVG 算点实在太蛋疼了强烈推荐大家去使鼡 SVG 编辑器来创建复杂的图形。
本文是作者原创如果搬运,请注明出处
请尊重作者劳动成果,谢谢配合