前端-JS-Canvas
SVG 使用数据就可以绘制点、线、图形的,基于 XML 的标记语言;
一种矢量图形文件格式, 不仅现在的浏览器都支持,很多主流的系统也都支持
WebGL 以 OpenGL ES 2.0() 为基础的一套 浏览器 3D图形API (HTML5),Three.js、Babylon.js、Blender4Web等是几种知名的 WebGL 开发框架拿来就用
Canvas HTML5新增的一个元素对象只支持2D,缺点性能和效果不如WebGL,优点,部分手机不支持WebGL
常用API
//获得画布元素
var canvas1=document.getElementById("canvas1");
//获得2维绘图的上下文
var ctx=canvas1.getContext("2d");
//设置
ctx.lineWidth=10;//设置线宽
ctx.strokeStyle="blue";//设置线的颜色
ctx.shadowColor="black";//设置或返回用于阴影的颜色
ctx.shadowBlur=20;//设置阴影模糊级数
ctx.shadowOffsetX=-20;//设置左侧阴影在 20 像素处,=20为右像素
ctx.shadowOffsetY=-20;//设置上侧阴影在 20 像素处,=20为下像素
var grd=ctx.createRadialGradient(0,0,170,0);//创建线性的渐变对象,渐变开始圆x,y,r结束圆x,y,r
var grd=ctx.createLinearGradient(0,0,170,0);//创建线性的渐变对象,渐变开始点x,y结束点x,y
grd.addColorStop(0,"black");//向渐变对象添加颜色
grd.addColorStop(1,"white");
ctx.fillStyle=grd;//使用渐变对象
//画线
ctx.moveTo(0,0);//将画笔移动到00点
ctx.lineTo(800,600); //画线到800,600的坐标
ctx.stroke();//执行画线
//画块
ctx.beginPath(); //清空子路径,一般用于开始路径的创建
ctx.strokeStyle = "red";
ctx.moveTo(300,300);
ctx.lineTo(0,595); //画线到0,300的位置
ctx.lineTo(595,595); //画线到右下角
ctx.closePath(); //闭合
ctx.fillStyle="lightgreen"; //设置填充颜色
ctx.fill(); //执行填充
//画图
ctx.strokeRect(0,0,600,600);//画一个空心的矩形,
ctx.fillRect(200,200,200,200);//画一个实心矩形
ctx.arc(300,300,200,0,Math.PI,false);//画一段圆弧,300,300是圆心,200是半径,0是超始角度,Math.PI是结束角度,是否逆时钟
ctx.closePath();//闭合
ctx.arc(300,300,100,0,Math.PI*2,false);//画一个空心的圆,
ctx.fill();//执行填充
ctx.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);//截取image图像或html元素以sx,sy为左上角坐标,宽度为sw,高度为sh的一块矩形区域绘制到画布上以dx,dy坐标位置,图像宽度是dw,高度是dh
//画字
ctx.font='italic bolder 48px 黑体';//设置字体
ctx.strokeText(text,x,y,[maxWidth]);//text表示绘制空心字,x,y表示横,纵坐标,可选文字的最大宽度参数,防止文字显示溢出
ctx.fillText(text,x,y,[maxWidth]);//text表示绘制实心字,x,y表示横,纵坐标,可选文字的最大宽度参数,防止文字显示溢出
//清除数据
ctx.clearRect(250,250,100,100); //清除指定的矩形区域
//动态
ctx.rotate(20*Math.PI/180);//旋转 20 度
ctx.scale(2,2);//放大到 200%
ctx.translate(70,70);//重新映射画布上的 (0,0) 位置
ctx.transform(1,0.5,-0.5,1,30,10);//水平缩放绘图。水平倾斜绘图。垂直倾斜绘图。垂直缩放绘图。水平移动绘图。垂直移动绘图
posted on 2021-01-22 13:48 xcc_20190625 阅读(79) 评论(0) 收藏 举报
浙公网安备 33010602011771号