绘制方块
fillRect(L,T,W,H):填充出一个方块,默认颜色是黑色
strokeRect(L,T,W,H):画一个带边框的方块(空心方块),默认边框1像素,显示不一样
oGC.strokeRect(50.5,50.5,100,100);//这样写才会显示出是1个像素的
设置绘图
fillStyle:设置填充颜色,使用:oGC.fillStyle='blue';设置成蓝色
lineWidth:边线的宽度,这是一个数值,使用:oGC.lineWidth=10;边框为10像素
strokeStyle:边线的颜色,使用:oGC.strokeStyle='red';
代码示例:
var oC=document.getElementById('cl');//获取画布
var oGC=oC.getContext('2d');//获取绘图对象
oGC.fillStyle='blue';//填充颜色
oGC.lineWidth=10;//边线宽度
oGC.strokeStyle='red';//边线颜色
oGC.fillRect(50,50,100,100);//画实心方块
oGC.strokeRect(50.5,50.5,100,100);//画空心方块
显示效果:

注意:填充和画边框的顺序不同显示效果也不同,谁写先就显示谁先,谁就在上边

边界绘制
lineJoin:边界连接点样式(折角的样式)
——miter(默认)、round(圆角)、bevel(斜角),使用:oGC.lineJoin='xxx';

lineGap:端点样式
——butt(默认)、round(圆角)、square(高度多出宽度的一半)

绘制路径(画线)
beginPath:开始绘制路径
closePath:结束绘制路径
moveTo:移动到绘制的新目标点
lineTo:新目标点,相当于线段终点
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.beginPath();//开始绘制路径
oGC.moveTo(100, 100);//移动到绘制的新目标点
oGC.lineTo(200, 200);//新目标点,相当于线段终点
oGC.closePath();//结束绘制路径
/\*画多个的时候要有开始和闭合加以区分\*/
oGC.stroke();//进行绘制
/ \*要有这条语句才会出现线段\*/
效果:

绘制路径(多种绘制)
stroke:画线,默认黑色
fill:填充,默认黑色
rect(L,T,W,H):矩形区域
clearRect(L,T,W,H):删除一个画布的矩形区域
save:保存路径
restore:恢复路径
\*这两个用来封闭代码段的,比如设置样式的时候
代码示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.save();//保存路径
oGC.fillStyle='red';//设置填充样式
oGC.beginPath();//开始绘制路径
oGC.moveTo(100, 100);//移动到绘制的新目标点
oGC.lineTo(200, 200);//新目标点,相当于线段终点
oGC.lineTo(300, 200);
oGC.closePath();//结束绘制路径
oGC.fill();//填充绘制
oGC.restore();
//上边设置的样式只对封闭起来的那个三角形起作用
oGC.beginPath();//开始绘制路径
oGC.moveTo(100, 200);//移动到绘制的新目标点
oGC.lineTo(200, 300);//新目标点,相当于线段终点
oGC.lineTo(300, 300);
oGC.closePath();//结束绘制路径
oGC.fill();//填充绘制
效果:

绘制圆形
arc(x,y,半径,起始弧度,结束弧度,绘制旋转的方向)
——x,y :圆心的位置
——弧度与角度的关系:弧度=角度\*Math.PI/180
——旋转方向:顺时针(默认:false)、逆时针(true)
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.arc(200,200,150,0,360\*Math.PI/180,false);
oGC.stroke();
效果:

绘制其他曲线
arcTo(x1,y1,x2,y2,r)
——第一坐标、第二坐标、半径。
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.moveTo(100,200);
oGC.arcTo(100,100,200,100,50);
oGC.stroke();
效果:

图解:

quadraticCurveTo(dx,dy,x1,y1)
——贝塞尔曲线,第一组控制点,第二组结束坐标。
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.moveTo(100,200);
oGC.quadraticCurveTo(100,100,200,100);
oGC.stroke();
效果:

图解:

控制点dx,dy起到一个牵引作用,使曲线向其靠拢。
bezierCurveTo(dx1,dy1,dx2,dy2,x1,y1)
——贝塞尔曲线:第一组控制点,第二组控制点,第三组结束坐标
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.moveTo(100,200);
oGC.bezierCurveTo(100,100,200,100,100,200);
oGC.stroke();
效果:

图解:

变换
translate
——偏移,从起始点为基准点,移动到当前坐标位置。
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.translate(100,100);
oGC.fillRect(0,0,100,100);
效果:

rotate
——旋转,参数为弧度
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');//获取绘图对象
oGC.translate(100,100);
oGC.rotate(45\*Math.PI/180);
oGC.fillRect(0,0,100,100);
效果:

\*以方块左上角原点旋转
scale
——缩放,参数为原来小方块的长宽倍数,为两个数值
示例:旋转加缩放的小方块
插入图片
——等图片加载完,在执行canvas操作
—图片预加载:在onload方法中调用
drawImage(oImg,x,y,W,H)
—oImg:当前图片,x,y:坐标,W,H:宽高
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');
var oImg=new Image();
oImg.src="1.jpg";
oImg.onload= function () {
oGC.drawImage(this,0,0,400,400);
};
设置背景
createPattern(oImg,平铺方式)
——参数2为:repeat、repea-x、repea-y、no-repeat
示例:
var bg=oGC.createPattern(obj,'repeat');
oGC.fillStyle=bg;
oGC.fillRect(0,0,300,300);
渐变
createLinearGradient(x1,y1,x2,y2):线性渐变
——第一组参数:起点坐标,第二组参数:终点坐标
——addColorStop(位置,颜色) 添加渐变的颜色
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');
//线性渐变
var obj=oGC.createLinearGradient(150,100,150,200);
obj.addColorStop(0,'red');
obj.addColorStop(0.5,'yellow');
obj.addColorStop(1,'blue');
oGC.fillStyle=obj;
oGC.fillRect(150,100,100,100);
效果:

createRadialGradient(x1,y1,r1,x2,y2,r2)
——放射性渐变
——参数:第一个圆的圆心坐标和半径,第二个圆的圆心坐标和半径
示例:
var oC=document.getElementById('cl');
var oGC=oC.getContext('2d');
var obj=oGC.createRadialGradient(200,200,100,200,200,200);
obj.addColorStop(0,'red');
obj.addColorStop(0.5,'yellow');
obj.addColorStop(1,'blue');
oGC.fillStyle=obj;
oGC.fillRect(0,0,oC.width,oC.height);
效果:
