canvas
canvas 绘图
document.open();
document.write();// 这边代码无法显示在编辑器下 插入一个canvas标签
document.close();
var canvas = document.getElementById("canvas");
var cantxt = canvas.getContext("2d");
首先是一些路径的 API:
描绘路径的方法:
lineTo(x , y) : 描绘一条从起点到 (x , y) 点的直线,并且将起始位置设为 (x , y)。
rect(left , top , width , height) : 描绘一个已知左上角端点位置,以及高和宽的矩形。描绘完成后起点会一定到左上角位子。
arcTo( x1 , y1 , x2 , y2 , radius ) : 用于描绘一个与两条线段相切的圆弧,两条线段分别以当前Context绘制起点和(x2, y2)点为起点,都以(x1, y1)点为终点,圆弧的半径为radius。描绘完成后绘制起点会移动到以(x2, y2)为起点的线段与圆弧的切点。
arc( x , y , radius , startAngle , endAngle , anticlockwise ) : 用于描绘一个以(x, y)点为圆心,radius为半径,startAngle为起始弧度,endAngle为终止弧度的圆弧。anticlockwise为布尔型的参数,true表示逆时针,false表示顺时针。参数中的两个弧度以0表示0°,位置在3点钟方向;Math.PI值表示180°,位置在9点钟方向。
quadraticCurveTo( cpx , cpy , x , y) : 以当前Context绘制起点为起点,(cpx,cpy)点为控制点,(x, y)点为终点的二次样条曲线路径。
bezierCurveTo( cpx1 , cpy1 , cpx2 , cpy2 , x , y); : 以当前Context绘制起点为起点,(cpx1,cpy1)点和(cpx2, cpy2)点为两个控制点,(x, y)点为终点的贝塞尔曲线路径。
在描绘完路径之后,还需要使用以下方法 绘制路径或者填充颜色:
cantxt.rect(50,50,40,80);
cantxt.fillStyle = "#0F0";
cantxt.fill(); cantxt .moveTo(50,50); // 移动到坐标 50 50
cantxt.lineTo(150,150); // 划出轨迹到 150 150
cantxt.stroke(); // 以线条显示轨迹
// 突然会发现,颜色方面有点错误,线条的黑色会影响到矩形的绿色。所以需要使用 打开路径 关闭路径的方法隔断路径间的联系。 cantxt.beginPath();
cantxt.rect(50,50,50,100);
cantxt.fillStyle = "#0F0";
cantxt.fill();
cantxt.closePath();
cantxt.beginPath();
cantxt .moveTo(50,50); // 移动到坐标 50 50
cantxt.lineTo(150,150); // 划出轨迹到 150 150
cantxt.stroke(); // 以线条显示轨迹
cantxt.closePath();
cantxt.beginPath();
cantxt.moveTo(50,50);
cantxt.arcTo(100,100,200,50,50);
cantxt.stroke();
cantxt.closePath();
cantxt.fillText("abcde",100,300);
还有一种方式是不使用路径,直接填上颜色:
cantxt.strokeRect( 50,50,100,100 );
cantxt.clearRect( 50,50,100,100 ); // 发现还会留下一圈边框
cantxt.clearRect( 49,49,102,102 );
还有几个可以设置的属性:
cantxt.translate(200,200);
cantxt.rotate(1);
cantxt.moveTo(0,0);
cantxt.lineTo(100,100);
cantxt.stroke();
Context对象中拥有drawImage()方法可以将外部图片绘制到Canvas中。
其中,image参数可以是HTMLImageElement、HTMLCanvasElement或者HTMLVideoElement。第三个方法原型中的sx、sy在前两个中均为0,sw、sh均为image本身的宽和高;第二和第三个原型中的dw、dh在第一个中也均为image本身的宽和高。
Canvas Api简介1的更多相关文章
-
web API简介(一):API,Ajax和Fetch
概述 今天逛MDN,无意中看到了web API简介,觉得挺有意思的,就认真读了一下. 下面是我在读的时候对感兴趣的东西的总结,供自己开发时参考,相信对其他人也有用. 什么是API API (Appli ...
-
HTML5 程序设计 - 使用HTML5 Canvas API
请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
-
Pro HTML5 Programming(Second Edition)2.Canvas API(2)
1.在页面中加入canvas元素 eg: <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
-
Pro HTML5 Programming(Second Edition)2.Canvas API(1)
1.在使用HTML5的Canvas元素时,考虑到有些浏览器不支持canvas元素,或是不支持HTML5 Canvas API中的某些特性,开发人员最好提供一份替代代码. 以下代码展示如何在canvas ...
-
Web Api 简介
ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP. ...
-
canvas api
基本骨骼 <canvas id="canvas" width=1000 height=1000 style="border: 1px black dotted&qu ...
-
ZooKeeper系列4:ZooKeeper API简介及编程
问题导读: 1.ZooKeeper API 共包含几个包? 2.如何使用ZooKeeper API 创建zookeeper应用程序? 1)ZooKeeper API 简介 ZooKeeper AP ...
-
canvas API ,通俗的canvas基础知识(六)
这篇是canvas API系列的首尾之作,这篇以后,所有的canvas的属性和方法就将完了,哦,不对,应该是大部分常用的,还有部分不常用的属性和方法,因为种种原因,就不介绍了,后期的重点就是多写一点c ...
-
WebSocket API简介
WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chr ...
随机推荐
-
Document root element ";configuration";, must match DOCTYPE root ";mapper";.
最近剛剛鼓搗mybatis , 第一個demo就出了問題.其實原因是因為將mapper中的頭copy到了configuration里去了 <?xml version="1.0" ...
-
给linux设置grub密码
一.明文加密:vim /etc/grub.conf在hiddemenu下面新增一行,输入:password 密文然后:wq保存退出 在开机出现退数菜单的时候,按任意键,就会出现启动选择菜单,这时下面的 ...
-
Learn c language the one day
第一个c程序 #include<stdio.h> int main() { ; ; printf_s("请输入两个数字:"); scanf_s("%d,%d& ...
-
jersey+maven构建restful服务
一.新建一个Maven Web项目 a) 新建一个简单的Maven项目 b) 将简单的Maven项目转成Web项目 (若没出现further configuration available--或里面的 ...
-
golang-http-post
func httpPost() { resp, err := http.Post("https://www.abcd123.top/api/v1/login", "app ...
-
Mysql多实例添加到开机自启的方法
Mysql多实例配置成功后,想让配置成开机自启. 首先看一下Linux启动的知识点,顺序如下. 1 加载内核2 执行init程序3 /etc/rc.d/rc.sysinit # 由init执行的第 ...
-
mongodb浅析
设计特征: MongoDB 的设计目标是高性能.可扩展.易部署.易使用,存储数据非常方便.其主要功能特性如下. (1)面向集合存储,容易存储对象类型的数据.在MongoDB 中数据被分组存储在集合中, ...
-
移动采编app
大家好: 移动采编app用到了一些非该app定义的控件,比如照相机以及涉及到权限的弹窗等.这部分控件的元素id在不同品牌甚至同一品牌不同型号的手机上可能是不同的,因此安卓自动化中需要对这种情况做相应的 ...
-
H5视频推流方案
导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程中的经验. 环境部署 1. 配置 ...
-
New Concept English Two 25 67
$课文65 小象对警察 683. Last Christmas, the circus owner, Jimmy Gates, decided to take some presents to a ...