【面向HTML5--SVG绘图】
来源:互联网 发布:拉比 婴儿床 知乎 编辑:程序博客网 时间:2024/06/05 00:30
Canvas绘图和SVG绘图的比较:
位图与矢量图的比较:
位图:Photoshop,由一个又一个颜色点组成,每个点由rgb指定。善于表现颜色的细节变化,放大后会失真——一般用于照片 —— Canvas绘图.矢量图:Flash/AI,由一个又一个矢量线条/图形组成,每个图形指定方向和颜色即可。可以无限放大而不失真,不善于表现颜色的细节变化——一般用于设计图标、动画 —— SVG绘图
HTML5出现之前使用SVG的方法:
(1)创建一个XML文档,编写SVG的标签(2)在HTML引用XML文档,使用在img、iframe、embed、object等HTML标签中。
HTML5出现之后使用SVG的方法:
H5标准把SVG标签纳入自己的标签库(有些SVG的特效标签被舍弃了),所有SVG标签可以直接出现在H5文档中。注意:SVG标签中不能放置普通的HTML标签;SVG相关的标签页不能放在SVG画布外!svg是300*150的 inline-block
1、使用SVG绘图 —— 绘制矩形
<rect width="宽" height="高" x="x轴起点" y="y轴起点" stroke="描变颜色" stroke-width="描边宽度" stroke-opacity="描边透明度"></rect>
说明: (1)所有的SVG标签样式可以使用属性来声明,也可以使用CSS形式来声明——但其可用的样式属性都是专有的!普通的CSS样式属性对SVG元素是无效。 (2) SVG标签属性都不是HTML DOM属性!可以使用核心DOM方式操作SVG标签属性——setAttribute()、getAttribute() (3)动态的创建新的SVG元素,可以使用HTML字符串拼接方式, 也可以使用document.createElementNS() / svg.appendChild()方式
#r1:hover{ stroke-opacity: 1; fill-opacity: 1;}circle{ transition: all 1s linear;}
2、使用SVG绘图 —— 绘制圆形
<circle r="半径" cx="圆点x轴坐标" cy="圆点y轴坐标" fill="" stroke=" " stroke-width="" ....></circle>
3、使用SVG绘图 —— 绘制椭圆
<ellipse rx="x轴半径" ry="y轴半径" cx="圆点x轴坐标" cy="圆点y轴坐标"></ellipse>
4、使用SVG绘图 —— 绘制直线
<line x1="起点x轴坐标" y1="起点y轴坐标" x2="终点x轴坐标" y="终点y轴坐标" stroke=""> </line>
注意:
1、所有的SVG图形默认只有fill没有stroke;而line元素不需要fill只需要stroke!
2、若多个SVG图形有一样的属性,可以声明在小组中,在小组上声明公共的属性,每个组员都会自动继承该属性。
5、使用SVG绘图 —— 绘制折线
//x1,y1 x2,y2 x3,y3表示折线各拐点的坐标<polyline points="x1,y1 x2,y2 x3,y3 ..." stroke="" fill="transparent"></polyline>
6、使用SVG绘图 —— 绘制多边形
//x1,y1 x2,y2 x3,y3表示折线各拐点的坐标<polygon points="x1,y1 x2,y2 x3,y3 ..."></polygon>
7、使用SVG绘图 —— 绘制文本
<text alignment-baseline="before-edge" font-size="40" font-family="SimHei" x="50" y="50"> abyg中国</text>
8、使用SVG绘图 —— 绘制图像
<image xlink:href="img/disc.png" width="300" height="50" x="100" y="100"></image>
9、SVG中使用特效对象——渐变对象
定义特效对象:
<defs> <linearGradient id="g2" x1="" y1="" x2="" y2=""> <stop stop-color="" offset=""></stop> <stop stop-color="" offset=""></stop> </linearGraident></defs>
使用特效对象:
<rect fill="url(#g2)" stroke="url(#g2)"></rect>
9、SVG中使用特效对象——滤镜(filter)——高斯模糊滤镜
滤镜效果可以参考Photoshop中的“滤镜”功能。
定义特效对象:
<defs> <filter id="f2"> <feGaussianBlur stdDeviation="3"/> </filter></defs>
使用特效对象:
<rect filter="url(#f2)"></rect>
更多的滤镜示例查看MDN:https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filter
第三方绘图工具
1、Two.js:一个二维的绘图 API,用于较新的 Web 浏览器,可基于不同上下文绘制,包括 svg、canvas 和 webgl。
2、Snap.svg:使用svg绘图的插件库
3、d3.js :数据可视化插件库,使用SVG绘图 最新版的d3已经支持使用canvas绘制
阅读全文
0 0
- 【面向HTML5--SVG绘图】
- 【面向HTML5--Canvas绘图】
- SVG绘图
- [HTML5-SVG,VML,CANVAS]Web开发中的矢量绘图(vml,svg)处理和应用
- html5 svg
- html5 svg
- HTML5 SVG
- HTML5----SVG
- html5 SVG
- HTML5 SVG
- 【HTML5】SVG
- 【HTML5】SVG
- 【HTML5】svg
- HTML5-SVG
- HTML5 SVG
- SVG绘图技术
- 17、svg绘图
- SVG 绘图
- pandas使用入门
- Android群英传学习——控件架构与自定义控件
- php函数call_user_func和call_user_func_array详解
- 自己写“扫雷”(二).业务逻辑实现
- 分类器性能指标错误率、正确率、召回率
- 【面向HTML5--SVG绘图】
- Python常用时间操作总结【取得当前时间、时间函数、应用等】
- 初学C语言时在语法和语义上容易犯的一些错误
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解
- Android studio如何添加HttClient
- 小公司如何应对老员工加薪的要求
- 解决VS在进行OpenGL编程中出现“无法启动此程序,因为计算机中丢失OPENGL.dll”
- C++ MFC / VS2013 之十六(对话框:字体对话框)
- LeetCode Week5