1. 在canvas标签中给出长宽(不带单位):<canvas width="600" height="600"></canvas>

 或者在js中设置长宽:canvas.width = 600; canvas.height = 600;

 注意:canvas是行内块元素,用CSS设置的width和height像素值是canvas在页面渲染出来的宽高,而用js设置或者在标签中直接给出的则是canvas的分辨率,二者有本质的区别。
    canvas元素的使用与普通的html元素并不相同,它有一个默认尺寸300*150,在css中设置宽高只能改变canvas的显示宽高,而并没有改变画布绘制时的尺寸,所以要为canvas设置绘制的尺寸,必须写在元素标签上或用JS设置。

2. 浏览器兼容时,不会显示canvas标签内的内容;不兼容时才会显示。

  <canvas width="600" height="600">您的浏览器不支持canvas标签</canvas>

3. var canvas = document.getElementById("canvas"); // 获取canvas标签
    var context = canvas.getContext("2d"); // 获取2d上下文环境

    context.beginPath();//可以开始绘制

    context.moveTo(100,100); //画笔移动到(100,100);
    context.lineTo(150,200); //创建一条从(100,100)到(150,200)的路径
    context.fillStyle = "#ccc"; //填充颜色为#ccc
    context.strokeStyle = "#fff"; //进行描边
    context.lineWidth = 5;
    context.fill();//进行填充
    context.stroke();//进行描边

    context.closePath();//关闭当前路径 (基于状态)

    关于closePath():当当前路径不是封闭路径时,使用closePath会自动将当前路径的首尾连接起来

    context.fillRect(x,y,w,h);
    context.clearRect(50, 30, 110, 35); //清除画布上的内容

    (50,30)为矩形起点,110.35为矩形长宽

   想绘制多条不封闭路径图形,在每次绘制新路径时使用beginPath即可
4. 绘制弧线
 context.arc(x,y,r,startingAngle,endingAngle,anticlockwise = false);
   参数分别为:圆心坐标,半径,起始角度,结束角度,时钟方向(false为顺时针、true为逆时针)
        三点钟方向为0pi,六点钟方向为0.5pi,九点钟为1.0pi,12点钟为1.5pi
   例如:context.arc(300,300,100,0,Math.PI*1.5,false);

5. 绘制矩形

 context.fillRect(x,y,w,h);
   context.strokeRect(50, 30, 110, 35)
   context.clearRect(50, 30, 110, 35); //清除画布上的内容

6. 绘制虚线

 context.setLineDash([a,b]);//a为虚线线段长度,b为虚线线段间隔长度

7. 取得canvas元素相对于浏览器窗口的位置

 element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置

8. 绘制图片

 cvs.drawImage(image.x,y,width,height);
   context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);

   image可以是元素或是image对象,但不能是路径
   传递给 drawImage() 方法的图像必须是 Image 对象或 Canvas 元素

最新文章

  1. 简述TCP连接的建立与释放(三次握手、四次挥手)
  2. Facebook 发布「流程」
  3. 怎样用C#代码知道是否已连接网络
  4. 几种常见的FTP软件的二进制设置说明
  5. Java System类看到的一点小记
  6. .net转php laraval框架学习系列(三)项目实战---Route&amp;Controllers
  7. sql server 2008 中的架构(schame)理解
  8. OCP-1Z0-051-题目解析-第5题
  9. 增强 Sublimetext3
  10. .net momeryStream 读取为空问题
  11. NEO智能合约开发(二)再续不可能的任务
  12. Visual Studio 2017 注册码
  13. 第45节:Java当中的变量,面向对象
  14. 【原创】《windows驱动开发技术详解》第4章实验总结二
  15. ettercap中间人攻击--参数介绍
  16. Django 模板语法
  17. 字符编码-ASCII,GB2312,GBK,GB18030
  18. (转)Android学习路线总结,绝对干货
  19. CF1096D Easy Problem(DP)
  20. Spring面试,IoC和AOP的理解, @Transactional原理及使用

热门文章

  1. java中数组中一些方法的总结
  2. mysql之repair table 修复表札记
  3. CSS3 background-size 属性
  4. __block __weak
  5. IOS 设置文件是否使用ARC
  6. Android 基础:常用布局 介绍 &amp; 使用(附 属性查询)
  7. python3 第十四章 - 数据类型之Dictionary(字典)
  8. Git工具的使用教程
  9. js_3_for_if_try
  10. CSS学习(一)