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 元素

原文地址:https://www.cnblogs.com/Kuro-P/p/8446410.html

时间: 2024-08-08 21:06:57

canvas常用api的相关文章

canvas常用api文件

初识js起便开始接触canvas,总觉得h5是未来发展的趋势,更是门很装逼的艺术.其实canvas并不是html而是js,因为属于html标签,暂时把它放在html里写.个人对于canvas下的原生“弱智”画图api比较感兴趣,而对于cocos2d-html5这样的框架没啥兴趣,曾经也在公司利用cocos2d框架做过游戏,因为终究不是做游戏的料,放弃了,但是对于canvas的爱好,是不会变的.利用canvas,几行代码就能有神奇的装逼效果.已经一年多没接触canvas了,等我有时间补上canva

html5 canvas常用api总结(一)

1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生. 第三个参数设置函数是否在事件传递到DOM对象树的底层对象之前捕捉此种类型的事件. 2.引入canvas方法 <canvas id="fcanvas" width="500" height="300"> Your browser doe

html5 canvas常用api总结(二)--绘图API

canvas可以绘制出很多奇妙的样式和美丽的效果,通过几个简单的api就可以在画布上呈现出千变万化的效果,还可以制作网页游戏,接下来就总结一下和绘图有关的API. 绘画的时候canvas相当于画布,而context相当于画笔. 1.绘制线条 moveTo(x0,y0):把当前画笔(ictx)移动到(x0,y0)这个位置. lineTo(x1,y1):从当前位置(x0,y0)处到(x1,y1)画一条直线. beginPath():开启一条路径或者重置当前路径. closePath():从当前点回到

html canvas 常用api基础

HTML 5 Canvas 参考手册 <canvas> 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务. getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性. 本手册提供完整的 getContext("2d") 对象属性和方法,可用于在画布上绘制文本.线条.矩形.圆形等等. 浏览器支持 Internet Explorer 9.Firefox.Opera.Chrome 以及 Safari 支持 <

Selenium Web 自动化 - Selenium常用API

Selenium Web 自动化 - Selenium常用API 2016-08-01 1 WebElement相关方法2 iFrame的处理3 操作下拉选择框4 处理Alert5 处理浏览器弹出的新窗口6 执行JS脚本7 等待元素加载8 模拟键盘操作9 设置浏览器窗口大小10 上传文件11 Selenium处理HTML5 1 WebElement相关方法 Method   Summary void clear() If   this element is a text entry elemen

C++ 中超类化和子类化常用API

在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWindowLong,CallWindowProc,FindWindowEx 超类化:GetClassInfoEx,RegisterClassEx,UnRegisterClass 以上函数在代码中的使用见<C++ 中超类化和子类化> VC中基于SDK编程的窗口子类化 VC中基于SDK编程的窗口子类化的

List容器——ArrayList及常用API

List: ①   List容器是有序的collection(也称为序列).此接口的用户可以对List容器中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.List容器允许插入重复的值,包括null; ②   最常见的两个List接口的实现类是ArrayList和LinkedList; ArrayList及常用API: ①   ArrayList—动态数组; ②   ArrayList类扩展了AbstractList并实现了List接口

hadoop常用api编写

package hsfs常用api; import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration;

hadoop java接口及常用api

# java接口及常用api package com.yting.hadoop.hdfs; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputS