canvas画布的使用

canvas画布

**上一篇使用画布制作了一个变化的气泡,这篇写一下画布怎样使用
1.HTML5的canvas元素使用JavaScript在网页上绘制图像,画布是一个矩形区域,可以控制其每一像素。

2.画布默认大小是300*150 不要用css去设置宽高,会等比例缩放。

<canvas id="myCanvas" width="200" height="100">请升级您的浏览器(不识别的浏览器看到的内容)</canvas>

3.通过JS使用canvas之前,需要先设置它的绘图环境:

var cav=canvas.getContext('2d');

4.首先绘制一个方块

1.fillRect(L,T,W,H)填充一个方块,L,T表示位置,W,H表示宽高。
2.strokeRect(L,T,W,H)绘制方块(不填充,只有外边线)L,T表示位置,W,H表示宽高。
PS:画布能精确到每个像素
cav.strokeRect(50,120,100,100); 外边线为2px粗
cav.strokeRect(200.5,120.5,100,100); 外边线为1px粗

5.设置样式

1.fliiStyle 设置填充的颜色
2.ftrokeStyle 设置线条的颜色
3.lineWidth 设置线条的宽度(粗细)

6.设置线条连接点样式

1.lineJoin 取值: miter/round/bevel
默认直角/圆角/斜角

7.绘制路径

1.beginPath 开始绘制路径标记
2.closePath 结束绘制路径标记,连接开始点与结束点
3.moveTo 移动到绘制的新目标点
4.lineTo 新的目标点
5.stroke 画线,默认黑色
6.fill 填充,默认黑色
7.rect 矩形区域
8.clearRect 删除一个矩形区域
9.save 保存路径
10.restore 恢复上一次的保存路径

8.接着绘制圆

1.arc(x,y,半径,起始弧度,结束弧度,旋转方向)
x,y 圆心的位置
弧度与角度的关系:弧度=角度*Math.PI/180
旋转方向:顺时针(默认:false) 逆时针(true);

9.绘制曲线

1.arcTo(x1,y1,x2,y2,r)
x1,y1 开始点的位置
x2,y2 结束点的位置
r 曲线半径
2.quadraticCurveTo(x1,y1,x2,y2) 贝塞尔曲线
x1,y1 第一组控制点的位置
x2,y2 结束点的位置
3.bezierCurveTo(x1,y1,x2,y2,x3,y3) 贝塞尔曲线
x1,y1 第一组控制点的位置
x2,y2 第二组控制点的位置
x3,y3 结束点坐标

10.变形

translate 偏移,从起始点为基准点,移动当前坐标的位置
rotate 旋转,参数为弧度
scale 缩放,(x轴和y轴的方向)

11.插入图片

1.创建图片实例 var img=new Image();
2.等图片加载完,在执行canvas操作
3.设置图片路径
4.通过canvas绘制
eg:var img = new Image();
img.οnlοad=function(){
draw(this);
};
img.src=’../image/01.gif’;
function draw(obj){
cav.drawImage(obj,200,200,100,100)
};
参数解释: drawImage(obj,x,y,w,h)、img对象、x,y图片起始坐标、w,h图片的宽高

12.插入背景

createPattren(img,平铺方式)
等图片加载完之后在操作
平铺方式:repeat/repeat-x/repeat-y/no-repeat;
eg: var img = new Image();
img.οnlοad=function(){
draw(this);
}
img.src=’../image/01.gif’;
function draw(obj){
var bg=cav.createPattern(obj,’repeat’);
cav.fillStyle=bg;
cav.fillRect(0,0,500,500);
}

13.渐变

1.线性渐变
createLInearGradient(x1,y1,x2,y2)
第一组参数起始点坐标,第二组参数结束点坐标
eg: var gradient=cav.createLinearGradient(100,100,300,300);
gradient.addColorStop(0,’red’);
gradient.addColorStop(0.3,’blue’);
gradient.addColorStop(0.7,’yellow’);
gradient.addColorStop(1,’pink’);
cav.fillStyle=gradient;
cav.fillRect(100,100,500,500);
2.径向渐变
createRadialGradient(x1,y1,r1,x2,y2,r2)
参数:第一个圆的坐标和半径;第二个圆的坐标和半径
eg: var gradient=cav.createRadialGradient(300,300,50,300,300,300);
gradient.addColorStop(0,’red’);
gradient.addColorStop(0.3,’blue’);
gradient.addColorStop(0.7,’yellow’);
gradient.addColorStop(1,’pink’);
cav.fillStyle=gradient;
cav.fillRect(0,0,600,600);

14.文字

strokeText(txt,x,y) 文字边框
fillText(txt,x,y) 文字填充
font 文字大小 “60px impact”
textBaseline 文字基准线,默认在下
取值:top/ middle/bottom

15.阴影

shadowOffsetX 轴偏移,x轴偏移
shadowOffsetY 轴偏移,y轴偏移
shadowBlur 模糊距离
sgadowColor 模糊颜色
eg:
cav.shadowOffsetX=10;
cav.shadowOffsetY=10;
cav.shadowBlur=5;
cav.sgadowColor=’red;
cav.fillRect(0,0,200,200);

16.画布导出为图片toDataURL();

var img=document.getElementById('img');
                img.src=canvas.toDataURL();

**画布的一些使用我的总结也就这么多,还有什么缺陷的地方,可以评论给我,我很喜欢谈论学习。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值