十分钟学会canvas
一句话描述:canvas是HTML5加入的用来绘制2D图像与文字的元素。
基础
简单步骤:
- var c = document.getElementById("mycanvas");获取dom
- var ct = c.getContext("2d");取得2D上下文
- ct.fillStyle = "red";确定绘图方式(填充/描边)
- ct.fillRect(0,0,50,50);确定绘图位置和大小,前两个参数表示起始点的xy坐标,后两个参数表示宽和高
绘图方式:
2D上下文提供两种基本的操作。
1.填充。fillStyle来确定,fillRect来确定位置和大小。
2.描边。strokeStyle来确定,strokeRect来确定位置和大小。
实例1:画一个正方形
//带边框
//HTML中
<canvas id="mycanvas" width="200" height="200"></canvas>
//js中
var c = document.getElementById("mycanvas");
var ct = c.getContext("2d");
ct.fillStyle = "aqua";
ct.fillRect(0,0,50,50);
ct.strokeStyle = "red";
ct.strokeRect(0,0,50,50);

好,最基本的操作学会了,继续往下走。
初级:
clearRect():
可以用来清除画布的内容。
实例2:画两个正方形,中间部分为空
var c = document.getElementById("mycanvas");
var ct = c.getContext("2d");
ct.fillStyle = "aqua";
ct.fillRect(0, 0, 50, 50);
ct.fillStyle = "red";
ct.fillRect(30, 30, 50, 50);
ct.clearRect(30, 30, 20, 20);

注意,clearRect的其实位置是从左上角开始的。
绘制时钟
实例3:画两个圆形作为时钟的轮廓,里面时针分针显示为九点。
需要用到的方法:
beginPath():表示要开始绘制路径(注意,只有矩阵能被简单的绘制,其他的图形都要用到额外的方法)
arc(x,y,radius,startAngle.endAngle.counterclockwise):以(x,y)为原型绘制一条弧线,半径为radius,后面两个参数表示起始角度和结束角度,最后一个值表示起始和结束是否按逆时针方向计算,值为true为顺时针.注意,圆形要考虑原本的画布的大小,超出的部分会被隐藏.
lineTo(x,y):从上一点开始绘制一条直线,到(x,y)为止
moveTo(x,y):将游标移到(x,y),不画线.
var c = document.getElementById("mycanvas");
var ct = c.getContext("2d");
ct.beginPath();
//画外圆
ct.arc(100,100,90,0,2*Math.PI,false);
//画内圆
ct.moveTo(180,100);//画图会从0弧度开始画,也就是最右边,所以需要将起始点移到这里
ct.arc(100,100,80,0,2*Math.PI,false);
//画分针
ct.moveTo(100,100);
ct.lineTo(100,30);
//画时针
ct.moveTo(100,100);
ct.lineTo(50,100);
ct.stroke();

实例4:绘制带数字的时钟
待续
十分钟学会canvas的更多相关文章
- PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony
这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...
- 十分钟学会 tmux
tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...
- 快速入门:十分钟学会Python
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- Python十分钟学会
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- 快速入门:十分钟学会Python(转)
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- 高速入门:十分钟学会Python
初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...
- 十分钟学会Markdown基本语法
文章目录 Markdown 语法 一.标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 这是五级标题 这是六级标题 二.字体 三.引用 四.分割线 五.图片 六.超链接 七.列表 八.表格 ...
- 零基础十分钟学会用git在coding.net上传(pull)和push
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
- 十分钟学会mysql数据库操作
Part1:写在最前 MySQL安装的方式有三种: ①rpm包安装 ②二进制包安装 ③源码安装 这里我们推荐二进制包安装,无论从安装速度还是用于生产库安装环境来说,都是没问题的.现在生产库一般采用My ...
随机推荐
- ACM_“IP地址”普及(进制转换)
“IP地址”普及 Time Limit: 2000/1000ms (Java/Others) Problem Description: 大家都知道最近广财大校园网提速,现在就跟大家普及一下简单的互联网 ...
- servlet范围:数据共享
数据共享: 请求转发:request.getDispatcher("相对路径").forward(request,response) 重定向:response.sendRedire ...
- HTML+CSS(12)
n CSS浮动和清除 Float:让元素浮动,取值:left(左浮动).right(右浮动). Clear:清除浮动,取值:left(清除左浮动).right(清除右浮动).both(同时清除上面的 ...
- 【PostgreSQL-9.6.3】临时表
PostgreSQL中的临时表分两种,一种是会话级临时表,一种是事务级临时表.在会话级临时表中,数据可以存在于整个会话的生命周期中,在事务级临时表中的数据只能存在于事务的生命周期中.1. 会话级临时表 ...
- SQL基本操作——ALTER
ALTER TABLE 语句用于在已有的表中添加.修改或删除列. Persons 表: ID LastName FirstName Address City 1 Adams John Oxford S ...
- java攻城狮之路--复习xml&dom_pull编程续
本章节我们要学习XML三种解析方式: 1.JAXP DOM 解析2.JAXP SAX 解析3.XML PULL 进行 STAX 解析 XML 技术主要企业应用1.存储和传输数据 2.作为框架的配置文件 ...
- 白盒-CNN纹理深度可视化: 使用MIT Place 场景预训练模型
MIT发文:深度视觉的量化表示................ Places2 是一个场景图像数据集,包含 1千万张 图片,400多个不同类型的场景环境,可用于以场景和环境为应用内容的视觉认知任务. ...
- Redis 之hash集合结构及命令详解
1.hset key field value 作用: 把key中 filed域的值设为value 注:如果没有field域,直接添加,如果有,则覆盖原field域的值 2.hmset key fi ...
- mysql 如何用命令清除表数据,让表数据索引是从0开始呢?
truncate MYTABLE 这样就可以了 其实这个命令就相当于删除表再建 所有的数据都还原 可以使用工具来完成这个操作 右键单击要操作的表,选择Turncale Table 执行查询语句,数据就 ...
- 【转】IDEA 中tomcat图片储存和访问虚拟路径
1.idea 修改Tomcat的虚拟路径(第一种方法)修改配置文件有很多种,但是一直不成功;后来想还是idea的配置原因,这里tomcat虚拟路径只说一种; 修改Tomcat安装路径下server.x ...