HTML5Canvas

素颜马尾好姑娘i 2022-06-10 05:19 452阅读 0赞

Canvas ->

做游戏:白鹭引擎、trees…

动画

图表、频谱

画图

HTML5 不只是单纯HTML

本身是一个标签 是一个空白的画布 默认是300*150的宽高

本身有宽高的属性不需要使用CSS去设置有宽高的属性

CSS里面设置的宽高 一定要和canvas的宽高设置相同 不然绘制出来的内容就是变形的

是一个空白的画布

如果希望画布上面有内容,需要通过JS来绘制 -> 通过画布的上下文(也类似舞台)进行绘制

使用canvas

  1. 创建空白画布 ->HTMLCanvasElement

  2. 获得画布的上下文 -> CanvasRenderingContext2D

  3. 绘制的准备(画笔的宽、颜色、所需的资源)

  4. 开始绘制

HTMLCanvasElement

  1. var canvasEle = document.getElementById("box");
  2. canvasEle.width = innerWidth;
  3. canvasEle.height = innerHeight;

方法:

getContext(inDOMString contextId)可以传2d 或者 experimental-webgl(图形图像处理)

toDataURL()把canvas对象转成URL -> 生成带有绘制内容的一个资源链接地址

CanvasRenderingContext2D

提供了绘制、设置绘制内容的方法属性

属性:

fillStyle:设置填充的样式 充满

strokeStyle:设置轮廓的样式

lineWidth:设置笔画的宽度

lineCap:设置画笔结束位置的形状

Canva:获得画布的DOM元素

方法:

原点:画布的左上角

fillRect(x,y,width,height):绘制矩形的方法

moveTo(x,y) 抬起笔 要落到哪一个位置

lineTo(x,y) 画线到某个点

Stroke(不传||path2D) 绘制

beginPath(): 标识 要开始一个路径

closePath(): 标识 要结束一个路径 会帮咱们闭合 开始点和结束点

clearRect(): 清除矩形范围之内的内容

createLinearGradient(``x0,y0,x1,y1``)``:线性渐变``-> Canvas``Gradient

strokeText(text,x,t,maxWidth)``绘制文字

Arc(x,y,radius,startAngle,endAngle, anticlockwise)``绘制弧线``x,y``原点、``radius``半径、``startAngle,endAngle``起始和结束的角度,是否是逆时针

bezierCurveTo(参考点1X,参考点1y,参考点2x,参考点2y,终点x,终点y) 绘制贝塞尔曲线

Scale(x,y):放大缩小 不会影响到 画布本身,缩放是 画布里面的内容(让画布里面的单位进行缩放)

Save():保存画布上面 之前的样式(笔画宽度、颜色、变形、样式)[1,2]

Restore():还原画布上面 之前的样式 [1,2] restore restore

Translate():平移 以画布的原点(0,0)为参考

Rotate(angle):旋转 角度->弧度计算: PI/180*角度 -> 弧度

Canvas动画的实现:

  1. 通过不断刷新 canvas里面的内容 实现动画

  2. 清除上一次canvas里面的内容

CanvasGradient

设置canvas里面颜色渐变的类

可以通过设置颜色的方式(fillStyle\strokeStyle)去设置渐变对象

方法:

  1. addColorStop(offset(0-1), color)

这个方法可以多次 调用 添加 渐变的颜色值

Canvas ->

做游戏:白鹭引擎、trees…

动画

图表、频谱

画图

HTML5 不只是单纯HTML

本身是一个标签 是一个空白的画布 默认是300*150的宽高

本身有宽高的属性不需要使用CSS去设置有宽高的属性

CSS里面设置的宽高 一定要和canvas的宽高设置相同 不然绘制出来的内容就是变形的

是一个空白的画布

如果希望画布上面有内容,需要通过JS来绘制 -> 通过画布的上下文(也类似舞台)进行绘制

使用canvas

  1. 创建空白画布 ->HTMLCanvasElement

  2. 获得画布的上下文 -> CanvasRenderingContext2D

  3. 绘制的准备(画笔的宽、颜色、所需的资源)

  4. 开始绘制

HTMLCanvasElement

  1. var canvasEle = document.getElementById("box");
  2. canvasEle.width = innerWidth;
  3. canvasEle.height = innerHeight;

方法:

getContext(inDOMString contextId)可以传2d 或者 experimental-webgl(图形图像处理)

toDataURL()把canvas对象转成URL -> 生成带有绘制内容的一个资源链接地址

CanvasRenderingContext2D

提供了绘制、设置绘制内容的方法属性

属性:

fillStyle:设置填充的样式 充满

strokeStyle:设置轮廓的样式

lineWidth:设置笔画的宽度

lineCap:设置画笔结束位置的形状

Canva:获得画布的DOM元素

方法:

原点:画布的左上角

fillRect(x,y,width,height):绘制矩形的方法

moveTo(x,y) 抬起笔 要落到哪一个位置

lineTo(x,y) 画线到某个点

Stroke(不传||path2D) 绘制

beginPath(): 标识 要开始一个路径

closePath(): 标识 要结束一个路径 会帮咱们闭合 开始点和结束点

clearRect(): 清除矩形范围之内的内容

createLinearGradient(``x0,y0,x1,y1``)``:线性渐变``-> Canvas``Gradient

strokeText(text,x,t,maxWidth)``绘制文字

Arc(x,y,radius,startAngle,endAngle, anticlockwise)``绘制弧线``x,y``原点、``radius``半径、``startAngle,endAngle``起始和结束的角度,是否是逆时针

bezierCurveTo(参考点1X,参考点1y,参考点2x,参考点2y,终点x,终点y) 绘制贝塞尔曲线

Scale(x,y):放大缩小 不会影响到 画布本身,缩放是 画布里面的内容(让画布里面的单位进行缩放)

Save():保存画布上面 之前的样式(笔画宽度、颜色、变形、样式)[1,2]

Restore():还原画布上面 之前的样式 [1,2] restore restore

Translate():平移 以画布的原点(0,0)为参考

Rotate(angle):旋转 角度->弧度计算: PI/180*角度 -> 弧度

Canvas动画的实现:

  1. 通过不断刷新 canvas里面的内容 实现动画

  2. 清除上一次canvas里面的内容

CanvasGradient

设置canvas里面颜色渐变的类

可以通过设置颜色的方式(fillStyle\strokeStyle)去设置渐变对象

方法:

  1. addColorStop(offset(0-1), color)

这个方法可以多次 调用 添加 渐变的颜色值

发表评论

表情:
评论列表 (有 0 条评论,452人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HTML5】——Canvas

    Canvas是HTML5中所有新特性中目前应用最广泛的一个,可以替代引入的图片(图形) 用途:完成HTML页面中的图形绘制,实现网络游戏或单击游戏(网页游戏),在HTML中