做者: 糖少css
Canvas是 HTML5 新增的,一个可使用脚本(一般为JavaScript)在其中绘制图像的 HTML 元素。它能够用来制做照片集或者制做简单(也不是那么简单)的动画,甚至能够进行实时视频处理和渲染。 Canvas是由HTML代码配合高度和宽度属性而定义出的可绘制区域。JavaScript代码能够访问该区域,相似于其余通用的二维API,经过一套完整的绘图函数来动态生成图形。 Mozilla 程序从 Gecko 1.8 (Firefox 1.5)开始支持Canvas, Internet Explorer 从IE9开始支持。Chrome和Opera 9+ 也支持。html
苹果内部使用本身MacOS X WebKit推出,供应用程序使用像仪表盘的构件和 Safari 浏览器使用。 后来,有人经过Gecko内核的浏览器 (尤为是Mozilla和Firefox),Opera和Chrome和超文本网络应用技术工做组建议为下一代的网络技术使用该元素canvas
fillRect( x , y , width , height) //填充以(x,y)为起点宽高分别为width、height的矩形 默认为黑色
stokeRect( x , y , width , height) //绘制一个空心以(x,y)为起点宽高分别为width、height的矩形
clearRect( x, y , width , height ) // 清除以(x,y)为起点宽高分别为width、height的矩形 为透明
复制代码
beginPath() 新建一条路径一旦建立成功 绘制命令将转移到新建的路径上
moveTo( x, y ) 移动画笔到(x , y) 点开始后面的绘制工做
closePath() 关闭该路径 将绘制指令从新转移到上下文
stroke() 将绘制的路径进行描边
fill() 将绘制的封闭区域进行填充
复制代码
arc( x , y , r , startAngle , endAngle , anticlosewise ) // 以(x,y)为圆心 r为半径的圆 绘制startAngle弧度 到endAngle弧度的圆弧 anticlosewise默认为false 即顺时针方向 true为逆时针方向
arcTo( x1 , y1 , x2 , y2 , radius ) //根据 两个控制点 (x1,y1) 和 (x2, y2)以及半径绘制弧线 同时链接两个控制点
复制代码
一次贝塞尔曲线实际上是一条直线小程序
二次贝塞尔曲线数组
三次贝塞尔曲线浏览器
二次贝塞尔曲线bash
quadraticCurveTo( cp1x, cp1y , x ,y ) // (cp1x,cp1y) 控制点 (x,y)结束点
复制代码
三次贝塞尔曲线微信
bezierCurveTo( cp1x, cp1y ,cp2x , cp2y ,x , y )//(cp1x,cp1y)控制点1 (cp2x,cp2y) 控制点2 (x,y)结束点
复制代码
fillStyle = color
strokeStyle = color
//color 能够为颜色值、渐变对象(并不是样式!!!!)
lineWidth = value 线宽
lineCap = type (butt 、 round 、square)线条末端样式 依次是方形、圆形&突出、方形&突出
复制代码
lineJoin = type (round 、bevel 、 miter)线条交汇处样式 依次是圆形、平角 、 三角形
复制代码
ctx.setLineDash([ 实际长度 , 间隙长度 ]) //虚线 setLineDash接受数组
ctx.lineDashOffet //设置偏移量
复制代码
var gradient = ctx.createLinearGradient( x1 ,y1 ,x2 ,y2); //线性渐变
var gradient = ctx.createRadialGradient(x1 ,y1 ,r1 ,x2 ,y2 ,r2);//径向渐变
gradient.addColorStop( position , color )// position:相对位置0~1 color:该位置下的颜色
复制代码
ctx.globalAlpha = value (0~1)
复制代码
fillText( text , x , y , [,maxWidth]) 在(x,y)位置绘制text文本 最大宽度为maxWidth(可选)
strokeText( text ,x ,y ,[,maxWidth]) 在(x,y)位置绘制text文本边框 最大宽度为maxWidth(可选)
font = value eg:"100px sans-serif"
复制代码
drawImage( image , x , y , width , height ) image为图片对象、从(x,y)处放置宽高分别为width height的图片
drawImage( image , sx , sy , swidth , sheight ,dx ,dy ,dwidth ,dheight) 切片前四个是定义图像源的切片位置和大小 后四个是按期切片的目标显示位置大小
复制代码
save()
restore()
复制代码
translate( x , y ) 将canvas原点的移动到 (x,y) (save&restore保存初始状态!!!)
rotate( angle ) 顺时针方向旋转坐标轴 angle弧度
scale(x,y) 将图形横向缩放x倍、纵向缩放y倍 ( x、y大于1是放大 小于1为缩放!!!)
复制代码
globalCompositeOperation = type; source-over网络
source-in编辑器
source-out
source-atop
destination-over
destination-in
destination-out
destination-atop
xor
copy
clip //只显示裁剪区域内部区域 (使用save & restore 存储canvas状态!!!)
复制代码
clearRect() 清空画布
save&restore 保存恢复canvas状态
复制代码
区别详见:www.cnblogs.com/xiaohuochai…
详细标签 : www.runoob.com/svg/svg-ref…
详情:www.zhangxinxu.com/wordpress/2…
详情:www.zhangxinxu.com/wordpress/2…
详情:www.zhangxinxu.com/wordpress/2…
注意 : 上面的命令大写表示绝对定位,小写表示相对定位
<svg><text x="10" y="20" fill="red" transform="rotate(30,20,40)"></text></svg>
复制代码
原文连接: tech.meicai.cn/detail/69, 也可微信搜索小程序「美菜产品技术团队」,干货满满且每周更新,想学习技术的你不要错过哦。