一句话描述:canvas是HTML5加入的用来绘制2D图像与文字的元素。

基础

简单步骤:

  1. var c = document.getElementById("mycanvas");获取dom
  2. var ct = c.getContext("2d");取得2D上下文
  3. ct.fillStyle = "red";确定绘图方式(填充/描边)
  4. 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的更多相关文章

  1. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  2. 十分钟学会 tmux

    tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...

  3. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  4. Python十分钟学会

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  5. 快速入门:十分钟学会Python(转)

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  6. 高速入门:十分钟学会Python

    初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...

  7. 十分钟学会Markdown基本语法

    文章目录 Markdown 语法 一.标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 这是五级标题 这是六级标题 二.字体 三.引用 四.分割线 五.图片 六.超链接 七.列表 八.表格 ...

  8. 零基础十分钟学会用git在coding.net上传(pull)和push

    ---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...

  9. 十分钟学会mysql数据库操作

    Part1:写在最前 MySQL安装的方式有三种: ①rpm包安装 ②二进制包安装 ③源码安装 这里我们推荐二进制包安装,无论从安装速度还是用于生产库安装环境来说,都是没问题的.现在生产库一般采用My ...

随机推荐

  1. 【CodeForces727E/CF727E】Games on a CD (字符串哈希)

    题目: CodeForces727E 分析: 看到字符串比较,肯定想到哈希啊--现学的哈希,先丢两个重要的公式 (\(seed\)是大于字符集大小的质数,\(p\)是大质数) \[hash[i]=(h ...

  2. 331 Verify Preorder Serialization of a Binary Tree 验证二叉树的前序序列化

    序列化二叉树的一种方法是使用前序遍历.当我们遇到一个非空节点时,我们可以记录这个节点的值.如果它是一个空节点,我们可以使用一个标记值,例如 #.     _9_    /   \   3     2  ...

  3. SQL Sever语言 存储过程及触发器

    存储过程:就像函数一样的会保存在数据库中-->可编程性-->存储过程 创建存储过程: 保存在数据库表,可编程性,存储过程create proc jiafa --需要的参数@a int,@b ...

  4. php中的抽象方法和抽象类

    1.什么是抽象方法?    我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方 ...

  5. Spring的核心机制依赖注入

    原文地址:http://developer.51cto.com/art/200610/33311.htm 本文主要讲解依赖注入(设值注入.构造注入),作用是可以使Spring将各层的对象以松耦合的方式 ...

  6. ubuntuKylin17.04重装KDE

    不小心安装了一个不知道什么的东西,把libROS的那一套都给卸载了,然后删除掉了KDE的很多库.然后KDM也丢失了.KDE界面启动之后,plasma-desktop界面也启动不了.选择重装. 然而出现 ...

  7. CDR服装设计-用CorelDRAW排钻如何把圈摆均匀

    服装设计一直都是一个很火热的行业,也是一个比较高端的行业,随着时代的步伐,以前的人都是用手绘的方式来设计服装,现在不一样了,电脑可以说普及到了每一个家庭,让软件以更快的速度,更准确的数据来设计服装中的 ...

  8. AcGePoint3d ads_point 转换

    AcGePoint3d (AcGePoint2d )转换 ads_point 用:asDblArray函数. ads_point 转换AcGePoint2d  用asPnt2d(const doubl ...

  9. Git学习总结一(下载、初始化、添加文件)

    Git下载地址 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config - ...

  10. mysql中having和where区别?

    having和where有相似之处但也有区别,都是设定条件的语句. 在查询过程中,聚合语句(sum,min,max,avg,count),要比having子句有限执行. 在查询过程中,要先执行wher ...