###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. puppet 横向扩展(三)

    Table of Contents 1. 概述 2. 实验环境 3. 实验步骤 3.1. 机器B 的配置 3.2. 机器A 的配置 3.3. 测试配置结果 概述 横向扩展实验之三 – 将CA 认证服务 ...

  2. Redis学习笔记--Redis数据过期策略详解

    本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存sessi ...

  3. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  4. vue-引入外部js文件的方法和常量

    1.方法调用 a:  js文件(static/js/public.js) //函数的定义 返回上一页 export function goback(laststep) { laststep } b: ...

  5. (转)Spring Boot (十九):使用 Spring Boot Actuator 监控应用

    http://www.ityouknow.com/springboot/2018/02/06/spring-boot-actuator.html 微服务的特点决定了功能模块的部署是分布式的,大部分功能 ...

  6. python六十八课——网络编程之UDP协议

    1.1 概述 UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接.简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到 ...

  7. BFC原理剖析

    本文讲了BFC的概念是什么: BFC的约束规则:咋样才能触发生成新的BFC:BFC在布局中的应用:防止margin重叠(塌陷,以最大的为准): 清除内部浮动:自适应两(多)栏布局. 1. BFC是什么 ...

  8. [HAOI2018]染色

    嘟嘟嘟 这题当时没想出来(因为本人实在不太擅长计数),然后又被luogu的第一篇题解吓怕了,就咕了一小段时间再写. 其实这题不是很难. 做法就是基础容斥+NTT. 首先出现\(S\)次的颜色最多有\( ...

  9. 转://Oracle数据库补丁分析实践

    小弟我最近做了几次补丁分析,最开始分析补丁,感觉挺痛苦的,因为补丁数量多,且涉及的知识点非常非常的广,客户的要求又非常高.挺伤不起的.不过随着分析的深入,我慢慢的掌握了一些小方法.也在support网 ...

  10. php实现TXT小说章节解析、小说章节在线阅读

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 要实现TXT文本章节的解析,大概思路是在每个章节加入了特定的字符,然后根据字符的起始位 ...