移动端 canvas基础1
一、canvas画布
Canvas是HTML5中新出的一个元素,开发者可以通过JS脚本动态绘制图像。
#1. 创建canvas画布
在页面中创建canvas标签,并设置其id和宽高 (不要通过css设置,会有bug)
<canvas id="myCanvas" width="500" height="500">
#2. 设置画布
// 1. 通过js设置画布宽高
var canvas = document.getElementById('myCanvas');
canvas.width = 800;
canvas.height = 600;
// 2. 获取上下文对象 (可以理解为获取画笔)
var cxt = canvas.getContext('2d');
#二、绘制 - 线条
| 方法 | 描述 |
|---|---|
| beginPath() | 开启路径 |
| moveTo(x,y) | 起始点 |
| lineTo(x,y) | 下一个点 |
| closePath() | 闭合路径 |
| stroke() | 描边绘制 |
| fill() | 填充绘制 |
| 属性 | 描述 |
|---|---|
| strokeStyle | 描边颜色 |
| fillStyle | 填充颜色 |
| lineWidth | 粗细 |
| lineCap | 设置或返回线条端点样式 butt 默认,平直边缘 round 圆形线帽 square 正方形线帽 |
| lineJoin | 设置或返回两条相交线的拐角 miter 默认,尖角 round 圆角 bevel 斜角 |
#三、绘制 - 矩形
| 方法 | 描述 |
|---|---|
| rect(x,y,width,height) | 需配合stroke()或fill()方法绘制矩形 |
| fillRect(x,y,width,height) | 绘制填充矩形 |
| strokeRect(x,y,width,height) | 绘制矩形边框 |
| clearRect(x,y,width,height) | 清除指定矩形区域 |
#四、绘制 - 圆弧
==弧线==arc(x,y,r,sAngle,eAngle,counterclockwise)
| 参数 | 描述 |
|---|---|
| x,y | 圆心的坐标 |
| r | 圆的半径 |
| sAngle | 起始弧度 |
| eAngle | 结束弧度 弧度 = Math.PI/180*角度 |
| counterclockwise | 可选。true逆时针,false顺时针 |
==两切线之间的弧线== arcTo(x1,y1,x2,y2,r)
| 参数 | 描述 |
|---|---|
| x1,y1 | 弧的起点坐标 |
| x2,y2 | 弧的终点坐标 |
| r | 半径 |
==绘制扇形==
cxt.moveTo(x,y);
cxt.arc(x,y...);
cxt.closePath();
#五、绘制 - 文本
| 属性 | 描述 |
|---|---|
| font | 设置或返回文本的当前字体属性 |
| textAlign | 设置或返回文本的对齐方式 |
| textBaseline | 设置或返回文本的基线 |
| 方法 | 描述 |
|---|---|
| fillText(text,x,y) | 绘制填充文本 |
| strokeText() | 绘制描边文本 |
#六、绘制 - 图像
drawImage(img,x,y,width,height)
| 参数 | 描述 |
|---|---|
| img | 要使用的图像、视频 |
| x | 绘制的起始位置x坐标 |
| y | 绘制的起始位置y坐标 |
| width | 可选。宽度 |
| height | 可选。高度 |
#七、绘制 - 转换
| 方法 | 描述 |
|---|---|
| scale() | 缩放当前绘图至更大或更小 |
| rotate() | 旋转当前绘图 |
| translate() | 重新设置画布原点 |
| transform() | 替换绘图的当前转换矩阵 |
| setTransform() | 将当前转换重置为单位矩阵。然后运行 transform() |
#八、绘制 - 渐变色
#线性渐变
var lg = ctx.createLinearGradient(x, y, x1, y1);
lg.addColorStop(渐变位置,颜色);
ctx.strokeStyle = lg;
#径向渐变
var rg = cxt.createRadialGradient(起始圆x, 起始圆y, 半径, 结束圆x, 结束圆y, 半径);
rg.addColorStop(渐变位置,颜色);
ctx.strokeStyle = rg;
#九、多图形组合方式
ctx.globalCompositeOperation =
'source-over' //后画覆盖先画
'destination-out' //后画清空先画
#十、保存画布
cvs.toDataURL();
移动端 canvas基础1的更多相关文章
- HTML5移动开发学习笔记之Canvas基础
1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
- CreateJS第0章- Canvas基础
最近网页游戏比较火,以前做过一些小游戏,但是过段时间就都忘了,今天在这里记录一下学习过程,以备后用.做网页游戏有很多种框架,我是flash程序用Adobe出品的CreateJS最容易.基本上继承了fl ...
- canvas API ,通俗的canvas基础知识(一)
在没学canvas的时候,觉得canvas是这么的神秘,这么的绚丽,这么的高深,用canvas做出来的效果是如此的炫酷,能做的事情如此的宽广,简直让我心生敬畏之心,时常感叹:我要是得此技能,必定要上天 ...
- Flutter ChartSpace:通过跨端 Canvas 实现图表库
基于Flutter 的图形语法库,通过跨端 Canvas ,将基于 Javascript 的图形语法库 ChartSpace 扩展至 Flutter 端 作者:字节跳动终端技术--胡珀 背景 数据平台 ...
- canvas基础之旅
canvas 主要使用2D rendering context API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...
- canvas 基础知识整理(二)
html部分: <canvas id="myCanvas" width="800" height="800" ></can ...
- canvas 基础知识整理(一)
canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...
- canvas 基础知识
canvas 基础 低版本的ie不支持html5,需要引入excanvas.js来让ie支持canvas. 检测支持canvas <canvas id="canvas" wi ...
随机推荐
- web安全入门--入门条件
介绍:网络安全由习大大提出,是继海.陆.空.外太空的第五大作战领域,也是一个关系国家安全和主权.社会稳定.民族文化继承和发扬的重要问题.其重要性,正随着全球信息化步伐的加快越来越重要.接下来,我向大家 ...
- MindManager主题标记功能怎么使用
我们在使用MindManager制作思维导图的过程中,经常需要对主题的类别,优先程度等进行整理,毫无疑问,这是一项繁琐却又不得不做的工作.今天小编为大家带来了MindManager主题整理的一些小技巧 ...
- 【模板】【P3605】【USACO17JAN】Promotion Counting 晋升者计数——动态开点和线段树合并(树状数组/主席树)
(题面来自Luogu) 题目描述 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训--牛是可怕的管理者! 为了方便,把奶牛从 1⋯N(1≤N≤100,000) 编号,把公司组织成一棵树 ...
- mysql undo+redo+binlog
rt 数据库事务开始之前,会将要修改的记录存放到UNdo日志里,当事务回滚时或数据库崩溃时,可以利用undo日志撤销未提交事务对数据库产生的影响. 逻辑日志,记录一个过程,提交后不会删除.delete ...
- copy/b一个隐藏文件的小技巧
首先找一张图片 再放一个我们想隐藏的东西 压缩一下 新建txt文本文件b.txt,输入这段代码 copy/b namei.jpg + a.rar namei2.jpg 保存,将文件名改为b.bat 双 ...
- mfc c++优化
1.不住求精度时,尽量使用单精度浮点型2.使用32位数据类型3.使用有符号和无符号整型: 前提:无需考虑正负时 double x; int i; x = i; 使用有符号:unsigned int i ...
- Mysql主从同步机制
1.1 主从同步介绍和优点 *在多台数据服务器中,分为主服务器和从服务器.一台主服务器对应多台从服务器. *主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序读取数据 *主服务器写 ...
- 0001_20190327_使用frp搭建内网穿透
1. 环境 a) 公网服务器为阿里云的ECS Windows 2008 R2服务器, 有公网IP地址; 这个作为frp的服务器 b) 内网是开发服务器, Cento ...
- Python的富比较方法__lt__、__gt__之间的关联关系分析
Python的富比较方法包括__lt__.__gt__分别表示:小于.大于,对应的操作运算符为:"<".">".那么是否象普通数字运算一样,这两个方 ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的editTriggers属性以及平台编辑键(platform edit key )
老猿Python博文目录 老猿Python博客地址 editTriggers属性 editTriggers属性用于确认哪些用户操作行为会触发ItemView中的数据项进入编辑模式. 此属性是由枚举类E ...