###1. canvas(画布)

  <canvas>是HTML 5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形

    默认宽高为300px*150px

  基本概念和方法入门推荐:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial

###2.渲染上下文

  <canvas>元素只是创造了一个固定大小的画布,要想在它上面绘制内容,我们需要找到它的渲染上下文

    <canvas>元素有一个getContex()方法,这个方法是用来获取渲染上下文和它的绘画功能

    

  基本用法:

      <canvas id="cav" width="300px" height="150px"></canvas>

      var canvas = document.querySelector("#cav")

      if(canvas.getContext){    //  必须判断是否存在该方法,即判断浏览器是否支持canvas

        var ctx = canvas.getContext("2d");

      }

###3. .画布api
        oc.getContext("2d");
        oc.width
        oc.height
 ###4.上下文api
        ctx.fillRect(x,y,w,h):填充矩形
        ctx.strokeRect(x,ymwmh):带边框的矩形
        ctx.clearRect(0,0,oc.width,oc.height):清除整个画布
            注意原点的位置
        ctx.fillStyle
        ctx.strokeStyle
        ctx.lineWidth
        ctx.lineCap
        ctx.lineJoin
        ctx.moveTo(x,y):将画笔抬起点到x,y处
        ctx.lineTo(x,y):将画笔移到x,y处
        ctx.rect(x,y,w,h)
        ctx.arc(x,y,r,degS,degE,dir)
        ctx.arcTo(x1,y1,x2,y2,r):2个坐标,一个半径
                结合moveTo(x,y)方法使用,
                x,y:起始点
                x1,y1:控制点
                x2,y2:结束点
        ctx.quadraticCurveTo(x1,y1,x2,y2)        创建二次贝塞尔曲线
                结合moveTo(x,y)方法使用,
                x,y:起始点
                x1,y1:控制点
                x2,y2:结束点
                必须经过起点和终点
        ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3)        创建三次方贝塞尔曲线
                结合moveTo(x,y)方法使用,
                x,y:起始点
                x1,y1:控制点
                x2,y2:控制点
                x3,y3:结束点
                必须经过起点和终点
        ctx.fill()
        ctx.stroke()
        
        ctx.beginpath():清除路径容器
        ctx.closepath():闭合路径
            fill自动闭合
            stroke需要手动闭合
        ctx.save()
            将画布当前状态(样式相关 变换相关)压入到样式栈中
        ctx.restore()
            将样式栈中栈顶的元素弹到样式容器中
            图像最终渲染依赖于样式容器
            
        ctx.translate(x,y):将原点按当前坐标轴位移x,y个单位
        ctx.rotate(弧度):将坐标轴按顺时针方向进行旋转
        ctx.scale(因子):
            放大:放大画布,画布中的一个css像素所占据的物理面积变大,画布中包含的css像素的个数变少
                    画布中图像所包含的css像素的个数不变
            缩小:缩小画布,画布中的一个css像素所占据的物理面积变小,画布中包含的css像素的个数变多
                    画布中图像所包含的css像素的个数不变

附加: canvas作品资源  https://www.html5tricks.com/tag/html5-canvas/

js-canvas(基本用法)的更多相关文章

  1. JS的简单用法

    JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...

  2. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  3. [JS,Canvas]日历时钟

    [JS,Canvas]日历时钟 Html: <!doctype html> <html> <head> <meta charset="UTF-8&q ...

  4. js事件监听器用法实例详解

    这篇文章主要介绍了js事件监听器用法,以实例形式较为详细的分析了javascript事件监听器使用注意事项与相关技巧,需要的朋友可以参考下本文实例讲述了js事件监听器用法.分享给大家供大家参考.具体分 ...

  5. 利用js+canvas实现的时钟效果图

    canvas+js时钟特效 运用js+canvas方面的知识完成一个时钟的效果图,再利用for循环实现指针的转动效果: <!--网页文档的声明--> <!doctype html&g ...

  6. canvas arcTo()用法详解 – CodePlayer

    canvas arcTo()用法详解 – CodePlayer canvas arcTo()用法详解

  7. HTML5 Canvas阴影用法演示

    HTML5 Canvas阴影用法演示 HTML5 Canvas中提供了设置阴影的四个属性值分别为: context.shadowColor = “red” 表示设置阴影颜色为红色 context.sh ...

  8. js事件监听器用法实例详解-注册与注销监听封装

    本文实例讲述了js事件监听器用法.分享给大家供大家参考.具体分析如下: 1.当同一个对象使用.onclick的写法触发多个方法的时候,后一个方法会把前一个方法覆盖掉,也就是说,在对象的onclick事 ...

  9. 转 原生js canvas实现苹果电脑mac OS窗口最小化效果

    http://www.17sucai.com/pins/demo-show?id=2459 http://www.17sucai.com/pins/demo-show?id=2458  很多资料 ,前 ...

  10. js canvas游戏初级demo-躲避障碍物

    在线演示地址 http://200ok.fun:3100/html/game_demo.html 继上次js canvas游戏初级demo-上下左右移动(https://www.cnblogs.com ...

随机推荐

  1. February 12th, 2018 Week 7th Monday

    One man's fault is another man's lesson. 前车之覆,后车之鉴. We make mistakes every day, large or small, fail ...

  2. java使用elasticsearch实现集群管理

    本篇博客主要是查看集群中的相关信息,具体请看代码和注释 @Test public void test45() throws UnknownHostException{ //1.指定es集群 clust ...

  3. Spring的AOP基于AspectJ的注解方式开发3

    上上偏博客介绍了@Aspect,@Before 上篇博客介绍了spring的AOP开发的注解通知类型:@Before,@AfterThrowing,@After,@AfterReturning,@Ar ...

  4. Linux 简介(day1)

    一.Linux 诞生于1991年 二.创始人:林纳斯.托瓦茨(Linus Torvalds) 三.logo:企鹅 四.Linux完整系统包括 1.Linux kernel (Linux 内核) 2.f ...

  5. spring cloud(Greenwich.M2) hystrix dashboard 报/actuator/hystrix.stream 404 Not Found的问题

    consumer端不引用spring-boot-starter-actuator的情况 Consumer端会报Unable to connect to Command Metric Stream.新建 ...

  6. display:table-cell几种应用

    http://www.zhangxinxu.com/wordpress/2010/10/%E6%88%91%E6%89%80%E7%9F%A5%E9%81%93%E7%9A%84%E5%87%A0%E ...

  7. Java面试知识点之线程篇(三)

    前言:这里继续对java线程相关知识点进行总结,不能间断. 1.yield()方法 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执 ...

  8. linux学习笔记整理(三)

    第四章 文件的基本管理和XFS文件系统备份恢复本节所讲内容:4.1 Linux系统目录结构和相对/绝对路径.4.2 创建/复制/删除文件,rm -rf / 意外事故4.3 查看文件内容的命令4.4 实 ...

  9. 前端导出excel表

    前端导出excel表 方式一: 前端js实现 : https://www.cnblogs.com/zhangym118/p/6235801.html 方式二: java后端实现: https://bl ...

  10. ZooKeeper典型应用场景概览

    ZooKeeper是一个高可用的分布式数据管理与系统协调框架.基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题.网上 ...