html canvas 画布

tech2024-07-07  65

画布:

canvas

在页面上规划出一块空间,canvas标签,通过javascript控制画布完成绘制

1.获取画布

var canvas=document.getElementById("");

2.获取上下文对象 (获取画笔)

var cx=canvas.getContext("2d");

3.设置画笔样式

cx.fillStyle='red'; cx.strokeStyle='blue';

4.开始绘制

绘制图形:

1.矩形

fillRect(x,y,w,h);:实心填充元素 strokeRect(x,y,w,h);:描边 x,y:当前矩形开始绘制的位置坐标 w,h:当前矩形的宽高

2.绘制圆形

cx.beginPath(); cx.arc(x,y,r,begin,end,c);//设置圆 x,y:圆的圆心坐标 r:圆的半径 begin,end:开始角度和结束角度;Math.PI=180 Math.PI/180=1度 c:是否按照逆时针进行绘制 true:按照逆时针 false:顺时针 cx.closePath(); cx.fill();//实心填充 cx.stroke();//描边

3.绘制线段

moveTo(x,y): x,y:线段的起点坐标 lineTo(x,y) x,y:线段的终点坐标 cx.stroke(); //fill():不能使用 lineWidth=number;

4.绘制渐变图形

线性渐变: var g=createLinearGradient(bx,by,ex,ey): bx,by:渐变的开始位置坐标 ex,ey:渐变结束位置的坐标 g.addColorStop(offset,color); offset:0-1之间的偏移量 color:设置的颜色值 当前方法至少调用两次 cx.fillStyle=g; //绘制图形 径向渐变: createRadialGradient(bx,by,br,ex,ey,er) bx,by:开始圆的圆心位置 br:开始圆的半径 ex,ey:结束圆的圆心位置 er:结束圆的半径

5.变形

1.平移 translate(x,y): x,y:将坐标原点平移单位 2.扩大 scale(x,y): x:代表的是水平方向上的放大倍数 y:代表的是垂直方向上的放大倍数(如果想要缩小,参数设置为0-1之间的值) 放大坐标 3.旋转 rotate(angle): angle:旋转角度,旋转的中心点就是坐标轴的原点 默认按照顺时针进行旋转,想要进行逆时针旋转,角度设置为负数即可 4.保存和回滚 [save1,save2,save3] save():将当前的绘画状态进行保存并存入状态栈 restore():该方法每次调用只会回滚到上一次save的状态

6.图形组合

globalCompositeOperation=type; type:图形组合的方式 该属性一定要用在两个图形之间 type:string source-over:将新图形覆盖在原图形之上 destination-over:在原图形之下绘制新图形 source-in:新图形和原油图形做in计算,只显示新图形中和原油图形重叠的部分,其他部分均变为透明 destination-in:新图形和原油图形做in计算,只显示原有图形中和新图形重叠的部分,其他部分均变为透明 source-out:新图形和原油图形做out计算,只显示新图形中和原油图形不重叠的部分,其他部分均变为透明 destination-out:新图形和原油图形做out计算,只显示原有图形中和新图形不重叠的部分,其他部分均变为透明 source-atop:绘制新图形中与原有图形重叠部分并且保留原有图形未重叠部分;新图形其他部分变为透明 destination-atop:绘制新图形中与原图形重叠部分并且保留新图形未重叠部分;原有图形其他部分变为透明 lighter: 原图形和新图形均进行绘制,重叠部分进行加色处理 xor: 绘制新图形和原图形不重叠部分,重叠部分变为透明 copy: 只绘制新图形,原图形中不与新图形重叠的部分变为透明

7.绘制文本

cx.font='16px blod'; fillText(str,x,y,px); strokeText(str,x,y,px); str:绘制文本字符串 x,y:文本的显示坐标 px:可选参数,文本的最大的像素宽度
最新回复(0)