Web前端最新学习简单又不简单的 canvas,软件前端开发

算法

  1. 冒泡排序

  2. 选择排序

  3. 快速排序

  4. 二叉树查找: 最大值、最小值、固定值

  5. 二叉树遍历

  6. 二叉树的最大深度

  7. 给予链表中的任一节点,把它删除掉

  8. 链表倒叙

  9. 如何判断一个单链表有环

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 通过 id 属性获取 canvas 元素

  • 通过 canvas 元素的 getContext 方法获取上下文 context,图像将在上下文进行渲染,类似 PS 中的新建一个画布

  • Canvas API 主要聚焦于 2D 图形,所以获取 2d 上下文

  • 后期的绘制工作都是在 ctx 上下文进行的

Canvas 常见绘制方法

=======================================================================

坐标和栅格


  • 栅格:canvas 元素默认被网格所覆盖。通常来说网格中的一个单元相当于 canvas 元素中 的 1 像素。

  • 坐标:栅格的起点为左上角(坐标为(0,0))。所有元素的位置都相对于原点定位。

笔触和填充


  • Canvas 中的任何形状都是由这两个部分组成的。

  • 笔触:也叫描边。

| 名称 | 方法 | 作用 |

| — | — | — |

| 笔触(描边) | ctx.stroke() | 通过线条来绘制图形轮廓,不会自动闭合路径 |

| 填充 | ctx.fill() | 通过填充路径的内容区域生成实心的图形,会自动闭合路径 |

图形的样式


Canvas 中绘制的路径,可以自定义颜色、描边宽度等样式设置

| 属性 | 属性值 | 作用 |

| — | — | — |

| ctx.lineWidth | 数字 | 设置描边的宽度为几像素 |

| ctx.fillStyle | 颜色值 | 设置填充颜色 |

| ctx.strokeStyle | 颜色值 | 设置描边颜色 |

绘制路径


  • Canvas 中可以通过对应的方法绘制任意形状的路径。

  • 路径绘制后,必须进行描边或填充才能在屏幕中显示。

  • 路径的绘制需要多个方法配合完成。

| 方法 | 作用 |

| — | — |

| ctx.beginPath() | 新建一个路径的实例 |

| ctx.closePath() | 闭合路径 |

| ctx.moveTo(x, y) | 设置起始位置,将笔触移动到指定的坐标 x 以及 y 上。也可以绘制不连续的路径 |

| ctx.lineTo(x,y) | 绘制一条从当前位置到指定 x 以及 y 位置的直线 |

绘制矩形


绘制矩形的路径时,可以进行化简操作

| 方法 | 作用 | 参数 |

| — | — | — |

| ctx.fillRect(x, y, width, height) | 绘制一个填充的矩形 | x:绘制的水平起始位置;y:绘制的垂直起始位置;width:矩形的宽度;height:矩形的高度 |

| ctx.strokeRect(x, y, width, height) | 绘制一个矩形的边框 | 同上 |

| ctx.clearRect(x, y, width, height) | 清除指定矩形区域,让清除部分 完全透明。 一般用于清屏。 | 同上 |

绘制弧和圆形


  • 绘制弧形或者圆形,我们使用 arc() 方法。

  • 弧的制作属于路径,必须先 beginPath(),弧或圆形必须进行描边或填充才能进行显示。

| 方法 | 作用 | 参数 |

| — | — | — |

| ctx.arc(x, y, r, start, end, anticlockwise) | 绘制一个弧或圆形的路径 | x:圆心的水平位置 y:圆心的垂直位置 r:圆的半径 start:圆起始的角度(弧度) end:圆结束的角度(弧度) anticlockwise:设置绘制的方向,布 尔值,默认为false顺时针,true表示 逆时针方向 |

注意

  • ctx.arc() 函数中表示角的单位是弧度,不是角度。

  • 角度与弧度的 JS 表达式: 弧度 = (Math.PI / 180) * 角度。

  • 1 弧度 ≈ 57°

  • 特殊的角度,例如:

  • 180° = Math.PI 弧度

  • 360° = Math.PI * 2 弧度

绘制文本


Canvas 中绘制的文字,也可以设置文字的相关样式

| 方法和属性 | 作用 | 参数 |

| — | — | — |

| ctx.fillText(text, x, y [, maxWidth]) | 在指定位置填充文字 | text:绘制的文字内容 x:绘制的水平起始位置 y:绘制的垂直起始位置 maxWidth:可选,绘制的最大宽度 |

| ctx.strokeText(text, x, y [, maxWidth]) | 在指定位置绘制文字边框 | 同上 |

| ctx.font | 设置字体属性 | 属性值:”字号 字体” |

| ctx.textAlign | 设置文本对齐属性 | 属 性 值:start,end,left,right,center 默认值是 start |

Canvas 中的变形

=====================================================================

变形


  • Canvas 中变形是一种强大的方法,可以将原点移动到另一点、对网格进行旋转和缩放。

移动


  • ctx.translate(x, y) 可以移动原点的位置。

  • x 是左右偏移量,y 是上下偏移量。

旋转


  • ctx.rotate(angle) 可以以原点为中心旋转 canvas。 旋转的角度(angle),它是顺时针方向的,以 弧度为单位的值。

缩放


  • ctx.scale(scalewidth,scaleheight) 可以缩放当前绘图,更大或更小。

  • 参数:都是数字,表示缩放的宽度和高度的倍数。

  • 如果对绘图进行缩放,所有之后的绘图也会被缩放,定位也会被缩放。

状态的保存和恢复


  • Canvas 中可以保存当前的状态到内存中,一旦状态发生了改变后,例如进行了变形,后期可以通过恢复方法,恢复到保存过的状态中。

  • 保存和恢复多用于复杂的图形绘制

| 名称 | 方法 | 作用 |

| — | — | — |

| 保存 | ctx.save() | 保存画布(canvas)的当前的所有状态 |

| 恢复 | ctx.restore() | 恢复上次保存的状态 |

Canvas 中图片的使用和管理

算法

  1. 冒泡排序

  2. 选择排序

  3. 快速排序

  4. 二叉树查找: 最大值、最小值、固定值

  5. 二叉树遍历

  6. 二叉树的最大深度

  7. 给予链表中的任一节点,把它删除掉

  8. 链表倒叙

  9. 如何判断一个单链表有环

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

找: 最大值、最小值、固定值

  1. 二叉树遍历

  2. 二叉树的最大深度

  3. 给予链表中的任一节点,把它删除掉

  4. 链表倒叙

  5. 如何判断一个单链表有环

    [外链图片转存中…(img-7UxLaRYw-1715211129729)]

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值