算法
-
冒泡排序
-
选择排序
-
快速排序
-
二叉树查找: 最大值、最小值、固定值
-
二叉树遍历
-
二叉树的最大深度
-
给予链表中的任一节点,把它删除掉
-
链表倒叙
-
如何判断一个单链表有环
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
-
通过 id 属性获取 canvas 元素
-
通过 canvas 元素的 getContext 方法获取上下文 context,图像将在上下文进行渲染,类似 PS 中的新建一个画布
-
Canvas API 主要聚焦于 2D 图形,所以获取 2d 上下文
-
后期的绘制工作都是在 ctx 上下文进行的
=======================================================================
-
栅格: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 中变形是一种强大的方法,可以将原点移动到另一点、对网格进行旋转和缩放。
-
ctx.translate(x, y) 可以移动原点的位置。
-
x 是左右偏移量,y 是上下偏移量。
- ctx.rotate(angle) 可以以原点为中心旋转 canvas。 旋转的角度(angle),它是顺时针方向的,以 弧度为单位的值。
-
ctx.scale(scalewidth,scaleheight) 可以缩放当前绘图,更大或更小。
-
参数:都是数字,表示缩放的宽度和高度的倍数。
-
如果对绘图进行缩放,所有之后的绘图也会被缩放,定位也会被缩放。
-
Canvas 中可以保存当前的状态到内存中,一旦状态发生了改变后,例如进行了变形,后期可以通过恢复方法,恢复到保存过的状态中。
-
保存和恢复多用于复杂的图形绘制
| 名称 | 方法 | 作用 |
| — | — | — |
| 保存 | ctx.save() | 保存画布(canvas)的当前的所有状态 |
| 恢复 | ctx.restore() | 恢复上次保存的状态 |
算法
-
冒泡排序
-
选择排序
-
快速排序
-
二叉树查找: 最大值、最小值、固定值
-
二叉树遍历
-
二叉树的最大深度
-
给予链表中的任一节点,把它删除掉
-
链表倒叙
-
如何判断一个单链表有环
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
找: 最大值、最小值、固定值
-
二叉树遍历
-
二叉树的最大深度
-
给予链表中的任一节点,把它删除掉
-
链表倒叙
-
如何判断一个单链表有环
[外链图片转存中…(img-7UxLaRYw-1715211129729)]
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!