HTML5学习笔记之canvas
标签
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的更多相关文章
- html5学习笔记:canvas
1.什么是canvas? 可以绘制图形的标签.一般用javascript来绘制. 2.创建一个画布 <!DOCTYPE html> <html> <head> &l ...
- html5学习笔记一
HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg” controls=”controls”> ...
- Html5学习笔记1 元素 标签 属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HTML5学习笔记之表格标签
HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形
在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中 ...
- HTML5 学习笔记(一)——HTML5概要与新增标签
目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...
- HTML5 学习笔记--------》HTML5概要与新增标签!
一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...
- HTML5学习笔记(一):HTML简介
Web前端涵盖的内容较多且杂,主要由3个部分组成:HTML标记语言.CSS样式语言和JavaScript脚本语言组成,而下面我们将先学习最新的标记语言HTML5. <!DOCTYPE>标记 ...
随机推荐
- JAVA JVM 杂谈(一)
JVM能够跨计算机体系结构来执行Java字节码,主要是由于JVM屏蔽了与各个计算机平台先关的软件或者硬件之间的差异,使得与平台先关的耦合统一由JVM的提供者来实现. JVM结构组成: 1.类加载器:在 ...
- leetcode-137-Single Number II-第二种解法
题目描述: 详细的题目描述见上一篇博客<leetcode-137-Single Number II-第一种解法>,这里简单说一下. 有一个数组,所有元素都出现了三次,除了一个元素只出现了一 ...
- KVO 使用及原理
KVO的基本原理大概是这样的 当一个对象被观察时, 系统会新建一个子类NSNotifying_A ,在子类中重写了对象被观察属性的 set方法, 并且改变了该对象的 isa 指针的指向(指向了新 ...
- 单臂vlan路由实现过程
单臂路由拓扑图如下: 实现步骤如下: 1)pc的ip自己配置. 2)在交换机的各个端上划分好vlan 下联口:vlan 10 port g1/0/2 vlan 20 port g1/0/3 ...
- int和double究竟占多少个字节?c++等
最近在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节.后来,查了The C Programming language这本书,里面有一句话是这样的:Each co ...
- linux下普通用户添加 sudo 免密码
在使用普通用户登录的时候,会经常使用sudo指令执行一些操作,有时候感觉输入密码比较繁琐,特别是需要设置一些开机启动的时候操作,而这些操作往往就需要sudo指令,如果没有免密的话,在使用普通用户登录的 ...
- 同步FIFO学习
在网上找的一个经典同步FIFO例子. 一.前言 FIFO (First-In-First-Out) 是一种先进先出的数据交互方式,在数字ASIC设计中常常被使用.FIFO按工作时钟域的不同又可以分为: ...
- easyUI----纵向合并单元格
使用Easyui-DataGrid过程用.做统计/报表等时经常会使用到合并单元格,原生态Easyui-DataGrid没有合并单元格的属性或方法. 解决方案: 代码一 onLoadSuccess: f ...
- 存储器的保护(二)——《x86汇编语言:从实模式到保护模式》读书笔记19
接着上一篇博文说. 5.代码段执行时的保护 每个代码段都有自己的段界限.同栈段一个道理,有效界限和G位相关. G=0:有效界限 = 描述符中的段界限 G=1:有效界限 = 描述符中的段界限值 * 0x ...
- 【转】C++和Java比较
"作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的.事实上,Java本来就是从C++衍生出来的." 然而,C++和Java之间仍存 ...