JavaScript for Kids 学习笔记12. Canvas
来源:互联网 发布:dota视频站软件 编辑:程序博客网 时间:2024/05/16 10:46
1. 创建一个canvas
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Canvas</title></head><body><canvas id="canvas" width="400" height="400"></canvas></body></html>
创建一个html,噢,我用的编辑器是PhpStorm,只需要写黑体的那一行,其它的是默认的模版。
保存这个文件,在Chrome中打开,后面的代码都可以在Chrome console中输入、运行(当然,也可以写到这个html中)。我习惯于把比较长的代码写在html中,或者新建一个js文件,在html中引用,然后,在console中调用写好的 js 函数。
2. 画一个实心矩形
var canvas =document.getElementById("canvas");var ctx = canvas.getContext("2d");ctx.fillRect(0, 0, 50, 50);
这几行代码看着非常熟悉哈,像Cocoa中的:
CGContextRef contextRef = UIGraphicsGetCurrentContext();CGRect rect = CGRectMake(0, 0, 50, 50);CGContextFillRect(context, rect);
多年前写windows程序,onPaint() 函数中好像也差不多。 都是拿到一个context,对context做一堆配置(颜色、线条、字体),然后,再执行一些绘图/写字函数。
3. 更改画笔的颜色
ctx.fillStyle = "Red";ctx.fillRect(50,50,50,50);
颜色也可以这么写 "#f00" ,和CSS中一样。
4. 画一个空心矩形
ctx.strokeStyle = "Green";ctx.lineWidth = 3;ctx.strokeRect(10, 10, 100, 20);
stroke 在这里是 “笔划” 的意思,不是 “击打”。
5. 画线
ctx.beginPath();ctx.moveTo(10, 10);ctx.lineTo(60, 60);ctx.moveTo(60, 10);ctx.lineTo(10, 60);ctx.stroke();
这是一个绿色的叉:
这个坐标还比较简单,容易想象。从小几何就学的不好,现在也很怕计算坐标,稍微复杂一点儿的图形就算不清楚坐标了。比如,下面这个:
6. 填充一个路径
ctx.beginPath();ctx.moveTo(100, 100);ctx.lineTo(100, 60);ctx.lineTo(130, 30);ctx.lineTo(160, 60);ctx.lineTo(160, 100);ctx.lineTo(100, 100);ctx.fill();
7. 画弧线和圆
ctx.beginPath();ctx.arc(50, 50, 20, 0, Math.PI / 2, false); // quarter circlectx.stroke();ctx.beginPath();ctx.arc(100, 50, 20, 0, Math.PI, false); // half circlectx.stroke();ctx.beginPath();ctx.arc(150, 50, 20, 0, Math.PI * 2, false); // full circlectx.stroke();
0 0
- JavaScript for Kids 学习笔记12. Canvas
- JavaScript for Kids 学习笔记13. canvas 上的动画
- JavaScript for Kids 学习笔记:准备
- JavaScript for Kids 学习笔记3. 数组
- JavaScript for Kids 学习笔记4. Objects
- JavaScript for Kids 学习笔记7. 函数
- JavaScript for Kids 学习笔记10. 寻宝
- JavaScript for Kids 学习笔记1. 学习环境
- JavaScript for Kids 学习笔记2. 数据类型与变量
- JavaScript for Kids 学习笔记5. 分支和循环
- JavaScript for Kids 学习笔记6. 提示框
- JavaScript for Kids 学习笔记8. DOM & jQuery
- JavaScript for Kids 学习笔记9. 用户交互
- JavaScript for Kids 学习笔记11. 面向对象
- JavaScript for Kids 学习笔记14: 用键盘控制动画
- JavaScript for Kids 学习笔记15. 贪吃蛇
- 《Python for kids》学习笔记(一)
- 《Python for kids》学习笔记(二)
- dos 小命令
- MaxCompute 中的Code Generation技术简介
- SAP 物料编码更改标准解决方案
- 自动弹出数字键盘 EditText(Android) UITextField(iOS)
- python中获取指定目录下所有文件名列表的程序
- JavaScript for Kids 学习笔记12. Canvas
- java数据结构-哈希函数的构造方法
- git命令
- MyEclipse 断点无法进入的问题
- Java---C标签
- [编程题]求最大值
- Git学习—创建仓库
- MaxCompute2.0性能评测:更强大、更高效之上的更快速
- ogg启动报错libnnz11.so: cannot open shared object file