文章插图
1.3、svg工具/资源/库矢量图标资源
- Iconfont-阿里巴巴矢量图标库,功能很强大 , 及其提供丰富的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能 。应该就这个就够了!
- flaticon,国外的矢量图标库
C
贝塞尔曲线 。所以一般都是用专业工具来绘制< svg>
图形的,也有在线工具 。- 专业工具AI:Adobe Illustrator
- 在线SVG编辑器,Method Draw
- SVGator,一个在线SVG动画制作工具,导入SVG文件,进行可视化的动画制作 。
- 第三方库GSAP,来自GreenSock,可以更简单的实现更丰富的动画效果,不光支持SVG , 包括页面中任意可以通过JS访问的元素、属性 , 都可以实现动画 。
- anime.js , 功能强大,非常轻量,压缩后大小9K 。
- SVG动画库:mo.js、SVG.js
<canvas>
元素),提供了一点点API,由JS进行绘制各种图形 。2D的canvas绘制和<SVG>
挺像,都是一些线、矩形、圆、path路径数据 。这里就先简单了解一下,<canvas>功能
是很强大的,很多可视化图表都是基于<canvas>
实现的 。基本特点:
- 双标签,必须包含闭合标签 。标签内可以放提示文字 , 当浏览器不支持
<canvas>
会显示 。 - 坐标系以左上角为中心点 , 和SVG一样 。

文章插图
- MDN:Canvas 教程
<canvas width="400" height="400"></canvas>
getContext(contextType)获取用于绘制的渲染上下文,contextType: "2d":CanvasRenderingContext2D 二维渲染上下文 "webgl": WebGLRenderingContext 三维渲染上下文,OpenGL ES 2.0 "webgl2":WebGL2RenderingContext 三维渲染上下文,OpenGL ES 3.0CanvasRenderingContext2DfillStyle填充(内部)颜色 ctx.fillStyle='rgba(250,0,0,0.6)'
strokeStyle画笔(边框)颜色 ctx.strokeStyle='red'
,同上 , 支持color、渐变色画刷、图片画刷font字体设置 ctx.font = "bold 48px serif"
lineWidth线宽 ctx.lineWidth = 15;
toDataURL(type, quality)可以将canvas绘制的图形转换为Data URI 格式的图像 , 从而导出为位图文件基础图形绘制fillRect(x, y, width, height)填充一个矩形strokeRect(x, y, width, height)绘制一个矩形框clearRect(x, y, width, height)清除指定区域的的像素fillText(text, x, y, [maxWidth])填充文本strokeText(text, x, y [, maxWidth])绘制文本(轮廓)drawImage()绘制位图路径绘制①创建路径 >** ②创建路径> ③**渲染路径beginPath()开始一个新的路径,清除已有路径列表closePath()闭合一个路径moveTo(x, y)移动画笔到坐标x、ylineTo(x, y)画线到坐标x、yellipse(x, y, radiusX, radiusY,r,sa,ea)椭圆路径 ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle)
rect(x, y, width, height)矩形路径arc(x, y, radius, startAngle, endAngle)绘制圆弧路径quadraticCurveTo(cp1x, cp1y, x, y)二次贝塞尔曲线fill([path], [fillRule])填充当前、已存在的路径stroke([path])描边子路径Path2D可以单独申明一个路径对象,支持上面的绘制,还支持SVG的path数据 。<canvas id="canvas" width="400" height="400"></canvas><script> ctx = document.getElementById('canvas').getContext('2d'); // ctx.alpha = false; ctx.fillStyle = 'rgba(250,0,0,0.6)'; ctx.fillRect(10, 10, 40, 40); ctx.fillRect(30, 30, 40, 40); ctx.strokeStyle = 'red'; ctx.lineWidth = 3; ctx.strokeRect(90, 10, 150, 50); ctx.fillStyle = 'rgba(0,0,250,0.5)'; ctx.font = '20px 微软雅黑'; ctx.fillText("文本Text", 120, 40) //path ctx.beginPath(); ctx.moveTo(90, 80); ctx.lineTo(90, 200); ctx.lineTo(190, 200); ctx.closePath(); ctx.arc(120, 120, 50, 0, 360); ctx.fill();</script>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 前端开发日常——CSS动画无限轮播
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
- MFC-创建MFC图形界面dll
- Element 前端枚举enum的应用封装
- 基于纯前端类Excel表格控件实现在线损益表应用
- 15 基于SqlSugar的开发框架循序渐进介绍-- 整合代码生成工具进行前端界面的生成
- Java一次返回中国所有省市区三级树形级联+前端vue展示【200ms内】
- .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
- Flask 框架:运用Echarts绘制图形
- 前端程序员学习 Golang gin 框架实战笔记之一开始玩 gin