导航
[[深入01] 执行上下文](https://juejin.im/post/684490...
[[深入02] 原型链](https://juejin.im/post/684490...
[[深入03] 继承](https://juejin.im/post/684490...
[[深入04] 事件循环](https://juejin.im/post/684490...
[[深入05] 柯里化 偏函数 函数记忆](https://juejin.im/post/684490...
[[深入06] 隐式转换 和 运算符](https://juejin.im/post/684490...
[[深入07] 浏览器缓存机制(http缓存机制)](https://juejin.im/post/684490...
[[深入08] 前端安全](https://juejin.im/post/684490...
[[深入09] 深浅拷贝](https://juejin.im/post/684490...
[[深入10] Debounce Throttle](https://juejin.im/post/684490...
[[深入11] 前端路由](https://juejin.im/post/684490...
[[深入12] 前端模块化](https://juejin.im/post/684490...
[[深入13] 观察者模式 发布订阅模式 双向数据绑定](https://juejin.im/post/684490...
[[深入14] canvas](https://juejin.im/post/684490...
[[深入15] webSocket](https://juejin.im/post/684490...
[[深入16] webpack](https://juejin.im/post/684490...
[[深入17] http 和 https](https://juejin.im/post/684490...
[[深入18] CSS-interview](https://juejin.im/post/684490...
[[深入19] 手写Promise](https://juejin.im/post/684490...
[[深入20] 手写函数](https://juejin.im/post/684490...
[[react] Hooks](https://juejin.im/post/684490...
[[部署01] Nginx](https://juejin.im/post/684490...
[[部署02] Docker 部署vue项目](https://juejin.im/post/684490...
[[部署03] gitlab-CI](https://juejin.im/post/684490...
[[源码-webpack01-前置知识] AST抽象语法树](https://juejin.im/post/684490...
[[源码-webpack02-前置知识] Tapable](https://juejin.im/post/684490...
[[源码-webpack03] 手写webpack - compiler简单编译流程](https://juejin.im/post/684490...
[[源码] Redux React-Redux01](https://juejin.im/post/684490...
[[源码] axios ](https://juejin.im/post/684490...
[[源码] vuex ](https://juejin.im/post/684490...
[[源码-vue01] data响应式 和 初始化渲染 ](https://juejin.im/post/684490...
[[源码-vue02] computed 响应式 - 初始化,访问,更新过程 ](https://juejin.im/post/684490...
前置知识
一些单词
canvas:画布
triangle:三角形
rectangle:矩形
arc:弧
anti:反对,反
clockwise:顺时针方向
anticlockwise:逆时针方向
curve:曲线
quadratic:平方的
弧长 弧度
弧度 = 弧长 / 半径
弧度 = 弧长 / 半径 圆的弧长 = 2PI * R //即周长 1°的弧长 = 2PI * R / 360 = PI * R / 180 1°的弧度 = PI / 180
canvas
属性
只有两个属性:with 和 height
默认的width=300,height=150
- 标准方式:canvas 标签自带的 width 和 height 属性
- css方式
js方式: domTarget.width 和 domTarget.height
在不支持canvas的浏览器中显示 (替换内容)
- 替换内容:写在canvas便签内
- 不支持的浏览器将显示替换内容,而支持的浏览器会忽略标签内的内容
注意:canvas必须有结束标签,如果没有,后面的内容将被认为是替换的内容
渲染上下文 - the render context
getContext() 方法
- 获取 ( 渲染上下文 ) 和 ( 绘画功能 )
- 参数:表示( 上下文的格式 )
2d
,3d
如何判断浏览器是否支持canvas标签
var canvas = document.getElementById('canvas');
if (canvas.getContext) { // ------------------------ 通过判断 getContext 方法是否存在来判断
console.log('你的浏览器支持Canvas!');
} else {
console.log('你的浏览器不支持Canvas!');
}
模块