标签

canvas标签有一个默认宽高:300*150;

canvas的宽高一般写到行间样式中,写在style会有问题详细请看这里

绘制环境

要绘图先要获取到绘制环境:

var oC = document.getElementsByTagName('canvas')[0];
var oGC = oC.getContext('2d'); //有些浏览器支持webgl,可以绘制3D;

绘制方块

  • fillRect(Left,Top,Width,Height) : 填充方块,默认颜色黑色
  • strokeRect(Left,Top,Width,Height) : 带边框的方块,默认一像素的黑色边框 (默认下会渲染成两像素,解决办法

在Context对象下使用:

//接上面代码
oGC.fillRect(50,50,100,100);
oGC.strokeRect(50,50,100,100);

注意:绘制是有顺序的,后面的绘制会覆盖前面的。

设置绘图

  • fillStyle : 填充颜色
  • lineWidth : 线宽度(数值)
  • strokeStyle : 边框颜色

同样需要在Context对象下使用:

//接上面代码
oGC.fillStyle = 'red';
oGC.strokeStyle = 'blue';
oGC.lineWidth = 10;

边界绘制

  • lineJoin : 边界连接点样式
  • lineCap : 端点样式

绘制路径

  • beginPath : 开始绘制路径
  • closePath : 结束绘制路径
  • moveTo : 移动到绘制的新目标点
  • lineTo : 新的目标点
  • stroke : 画线,默认黑色
  • fill : 填充,默认黑色
  • rect : 矩形区域
  • clearRect : 删除一个画布的矩形区域
  • save : 保存路径
  • restore : 恢复路径

绘制圆

  • arc(x,y,半径,起始弧度,结束弧度,旋转方向)

    • x,y :起始位置

绘制其他曲线

  • acrTo(x1,y1,x2,y2,r)

    • 第一组坐标,第二组坐标,半径
  • quadraticCurveTo(dx,dy,x1,y1)
    • 贝塞尔曲线:第一组控制点,第二组结束坐标
  • bezierCurveTo(dx1,dy1,dx2,dy2,x1,y1)
    • 贝塞尔曲线:第一组控制点,第二组控制点,第三组结束坐标

变换

  • translate : 偏移,从起始点为基准点,移动当前坐标位置
  • rotate : 旋转
  • scale : 缩放

像素

  • createImageData(w,h) : 生成新的像素矩阵,初始值是全透明的黑色
  • putUmageData(要设置的图像数据,x,y) : 设置新的图像数据
  • getImageDate(x,y,w,h) : 获取图像数据
    • getImageDate下的属性
    • width : 一行的像素个数
    • height : 一列的像素个数
    • data : 一个数组,包含每个像素的rgba四个值,注意每个值都在0~255之间的整数

合成

  • 全局阿尔法值:globalAlpha
  • 覆盖合成:globalCompositeOperation,它下面有一堆东西

将画布导出为图像

  • toDataURL

    • 火狐下右键可以直接导出成图片

事件操作

  • isPointInPath:用来判断是否在点击范围内,只是针对最后绘制的图形

HTML5学习笔记之canvas的更多相关文章

  1. html5学习笔记:canvas

    1.什么是canvas? 可以绘制图形的标签.一般用javascript来绘制. 2.创建一个画布 <!DOCTYPE html> <html> <head> &l ...

  2. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

  3. Html5学习笔记1 元素 标签 属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. HTML5学习笔记之表格标签

    HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...

  5. HTML5 学习笔记(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  6. [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形

    在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中 ...

  7. HTML5 学习笔记(一)——HTML5概要与新增标签

    目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...

  8. HTML5 学习笔记--------》HTML5概要与新增标签!

      一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...

  9. HTML5学习笔记(一):HTML简介

    Web前端涵盖的内容较多且杂,主要由3个部分组成:HTML标记语言.CSS样式语言和JavaScript脚本语言组成,而下面我们将先学习最新的标记语言HTML5. <!DOCTYPE>标记 ...

随机推荐

  1. React第二篇:组件的生命周期

    前言:因为生命周期是必须要掌握的,所以React的第二篇咱就写这. (版本:16.3.2) React的生命周期大致分为四个状态:分别是Mouting.Updating.Unmounting.Erro ...

  2. archlinux安装tftp

    1. 安装  [guo@archlinux ~]$ sudo pacman -S tftp-hpa 2. 启用  [guo@archlinux ~]$ systemctl start tftpd.se ...

  3. Ubuntu16.04+Cuda8.0+cuDNN6配置py-faster rcnn(转)

    原博客地址:https://blog.csdn.net/meccaendless/article/details/79557162 0前言Faster R-CNN是任少卿2015年底推出的目标检测算法 ...

  4. linux 搭建gitlab server

    以root 身份进行登录linux 1.先安装相关依赖: sudo yum install -y curl policycoreutils-python openssh-server 2.开启SSH开 ...

  5. eclipse 远程debug

    [环境参数] Eclipse:Version: Mars.2 Release (4.5.2) Linux:centOS 6.5 [简述] Java自身支持调试功能,并提供了一个简单的调试工具--JDB ...

  6. 'node' 不是内部或外部命令,也不是可运行的程序或批处理文件

    状况:安装完nodejs之后,命令行输入node -v, 提示 'node' 不是内部或外部命令,也不是可运行的程序或批处理文件原因:检查环境变量没有配置正确配置环境变量: windows系统里, 需 ...

  7. android面试注意点

    Java 基础知识 面向对象的基本思想 Object类相关:Object类的几个关键函数.String涉及到的常量池概念,序列化 & 反序列化. 重要关键字:final.static. 内部类 ...

  8. 正则基础之——NFA引擎匹配原理

    记录一下一篇很好的博文:https://blog.csdn.net/lxcnn/article/details/4304651

  9. oracle表空间tablespace

    用户:用户是在实例下建立的.不同实例可以建相同名字的用户. 表空间:表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个 ...

  10. Robot Framework(Collections 库)

    Collections 库 Collections 库同样为Robot Framework 标准类库,它所提供的关键字主要用于列表.索引.字典的处理. 在使用之前需要在测试套件(项目)中添加: