canvas常用api
1. 在canvas标签中给出长宽(不带单位):<canvas width="600" height="600"></canvas>
或者在js中设置长宽:canvas.width = 600; canvas.height = 600;
注意:canvas是行内块元素,用CSS设置的width和height像素值是canvas在页面渲染出来的宽高,而用js设置或者在标签中直接给出的则是canvas的分辨率,二者有本质的区别。
canvas元素的使用与普通的html元素并不相同,它有一个默认尺寸300*150,在css中设置宽高只能改变canvas的显示宽高,而并没有改变画布绘制时的尺寸,所以要为canvas设置绘制的尺寸,必须写在元素标签上或用JS设置。
2. 浏览器兼容时,不会显示canvas标签内的内容;不兼容时才会显示。
<canvas width="600" height="600">您的浏览器不支持canvas标签</canvas>
3. var canvas = document.getElementById("canvas"); // 获取canvas标签
var context = canvas.getContext("2d"); // 获取2d上下文环境
context.beginPath();//可以开始绘制
context.moveTo(100,100); //画笔移动到(100,100);
context.lineTo(150,200); //创建一条从(100,100)到(150,200)的路径
context.fillStyle = "#ccc"; //填充颜色为#ccc
context.strokeStyle = "#fff"; //进行描边
context.lineWidth = 5;
context.fill();//进行填充
context.stroke();//进行描边
context.closePath();//关闭当前路径 (基于状态)
关于closePath():当当前路径不是封闭路径时,使用closePath会自动将当前路径的首尾连接起来
context.fillRect(x,y,w,h);
context.clearRect(50, 30, 110, 35); //清除画布上的内容
(50,30)为矩形起点,110.35为矩形长宽
想绘制多条不封闭路径图形,在每次绘制新路径时使用beginPath即可
4. 绘制弧线
context.arc(x,y,r,startingAngle,endingAngle,anticlockwise = false);
参数分别为:圆心坐标,半径,起始角度,结束角度,时钟方向(false为顺时针、true为逆时针)
三点钟方向为0pi,六点钟方向为0.5pi,九点钟为1.0pi,12点钟为1.5pi
例如:context.arc(300,300,100,0,Math.PI*1.5,false);
5. 绘制矩形
context.fillRect(x,y,w,h);
context.strokeRect(50, 30, 110, 35)
context.clearRect(50, 30, 110, 35); //清除画布上的内容
6. 绘制虚线
context.setLineDash([a,b]);//a为虚线线段长度,b为虚线线段间隔长度
7. 取得canvas元素相对于浏览器窗口的位置
element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置
8. 绘制图片
cvs.drawImage(image.x,y,width,height);
context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
image可以是元素或是image对象,但不能是路径
传递给 drawImage() 方法的图像必须是 Image 对象或 Canvas 元素
canvas常用api的更多相关文章
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- html5 canvas常用api总结(二)--绘图API
canvas可以绘制出很多奇妙的样式和美丽的效果,通过几个简单的api就可以在画布上呈现出千变万化的效果,还可以制作网页游戏,接下来就总结一下和绘图有关的API. 绘画的时候canvas相当于画布,而 ...
- Selenium Web 自动化 - Selenium常用API
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏览器 ...
- canvas绘图API详解
canvas绘图API详解 1.context的状态 矩阵变换属性 当前剪辑区域 context的其他状态属性: strokeStyle, fillStyle, globalAlpha, lineWi ...
- compass General 常用api学习[Sass和compass学习笔记]
compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- C++ 中超类化和子类化常用API
在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWi ...
- node.js整理 02文件操作-常用API
NodeJS不仅能做网络编程,而且能够操作文件. 拷贝 小文件拷贝 var fs = require('fs'); function copy(src, dst) { fs.writeFileSync ...
随机推荐
- linux 下查看有当前文件夹有多少个文件
ls |wc -w
- SSL证书安装指引
https://cloud.tencent.com/document/product/400/4143 下载得到的 www.domain.com.zip 文件,解压获得3个文件夹,分别是Apache. ...
- Html5+js测试题【完整版】
一.闭包的理解:使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露.闭包三个特性: 1.函数嵌套函数 ; 2 ...
- 谈谈Python、Java与AI
Python好像天生是为AI而生的,随着AI的火热,特别是用Python写的TensorFlow越来越火,Python的热度越来越高,就像当年Java就是随着互联网火起来的感觉.在我的工作中,Pyth ...
- RocketMQ-广播模式消费
Rocketmq 消费者默认是集群的方式消费的,消费者还可以用广播的模式进行消费.广播模式消费就是所有订阅同一个主题的消费者都会收到消息.代码实现上其实很简单,就是在消费端添加 consumer.se ...
- scrapy_创建_调试
如何创建scrapy项目? 输入命令: scrapy startproject project_name 在当前目录下创建名字叫project_name的scrapy项目 命令格式:scrapy st ...
- python_如何为元组中每个元素命名
学生信息系统: (名字,年龄,性别,邮箱地址) 为了减少存储开支,每个学生的信息都以一个元组形式存放 如: ('tom', 18,'male','tom@qq.com' ) ('jom', 18,'m ...
- 一步步使用BMC Atrium Orchestrator Vmware Infrastructure Event Monitor
本教程将一步步演示怎么使用BMC Atrium Orchestrator (BAO) Vmware Infrastructure Event Monitor来监控VSphere Webservice的 ...
- 【转】三大UML建模工具Visio、Rational Rose、PowerDesign的区别
本文转自http://developer.51cto.com/art/201006/207993.htm UML建模工具相信大家有所了解,那么你对UML建模工具Visio .Rational Rose ...
- c# 事件路由器
事件转发 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...