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>标记 ...
随机推荐
- bzoj 4032(A的一个最短的子串,它不是B的子串 || A的一个最短的子串,它不是B的子序列 || A的一个最短的子序列,它不是B的子串||A的一个最短的子序列,它不是B的子序列)
在虐各种最长公共子串.子序列的题虐的不耐烦了之后,你决定反其道而行之. 一个串的“子串”指的是它的连续的一段,例如bcd是abcdef的子串,但bde不是. 一个串的“子序列”指的是它的可以不连续的一 ...
- Q844 比较含退格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 示例 1: 输入:S = "ab#c", T = " ...
- @RequestMapping的value属性
package com.zby.controller; import javax.servlet.http.HttpServletRequest; import org.springframework ...
- 自动化测试接口PYTHON
在开发测试中经常会遇到接口迭代和代码重构,一个无关紧要的改动往往会引起整个项目的运行.现有的接口测试中往往只是针对单一接口的测试,可是业务的连贯性是非常紧密的,比如:用户从登陆,获取商品信息,下单 ...
- URL中参数为数组
今天写代码时候碰到了一个需要在URL中传递数组类型的参数,记录一下. var urlstr = "http://test"; var test = new Array(); for ...
- CSAPP阅读笔记-栈帧-来自第三章3.7的笔记-P164-P176
1.基本结构: 如上图所示,是通用的栈帧结构.大致分两块,调用者函数P和被调用者函数Q. 对P来说,要做的工作是把传递参数中多于6个的部分压栈,随后把Q返回时要执行的下一条指令的地址压栈. 对Q来说, ...
- Android Studio的串口通讯开发
基于android-serialport-api实现 前言RS232标准接口UARTRS232与UART转接下载 NDK 和构建工具创建支持 C/C++ 的新项目编译C/C++代码串口通讯原理关于校验 ...
- (转)python之os,sys模块详解
python之sys模块详解 原文:http://www.cnblogs.com/cherishry/p/5725184.html sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和 ...
- (转)MySQL Proxy使用
转自: http://www.cnblogs.com/itech/archive/2011/09/22/2185365.html http://koda.iteye.com/blog/788862 h ...
- JavaScript跨浏览器处理事件以及相关对象
主流的浏览器和IE浏览器在处理事件和事件对象上是有所区别的,我们一般会通过EventUtil进行封装,这样,就可以正常的跨浏览器处理事件了,本文的主要内容总结自<JavaScript高级程序设计 ...