一、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的更多相关文章

  1. HTML5移动开发学习笔记之Canvas基础

    1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...

  2. 《HTML5 CANVAS基础教程》读书笔记

    一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...

  3. CreateJS第0章- Canvas基础

    最近网页游戏比较火,以前做过一些小游戏,但是过段时间就都忘了,今天在这里记录一下学习过程,以备后用.做网页游戏有很多种框架,我是flash程序用Adobe出品的CreateJS最容易.基本上继承了fl ...

  4. canvas API ,通俗的canvas基础知识(一)

    在没学canvas的时候,觉得canvas是这么的神秘,这么的绚丽,这么的高深,用canvas做出来的效果是如此的炫酷,能做的事情如此的宽广,简直让我心生敬畏之心,时常感叹:我要是得此技能,必定要上天 ...

  5. Flutter ChartSpace:通过跨端 Canvas 实现图表库

    基于Flutter 的图形语法库,通过跨端 Canvas ,将基于 Javascript 的图形语法库 ChartSpace 扩展至 Flutter 端 作者:字节跳动终端技术--胡珀 背景 数据平台 ...

  6. canvas基础之旅

    canvas 主要使用2D rendering context  API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...

  7. canvas 基础知识整理(二)

    html部分: <canvas id="myCanvas" width="800" height="800" ></can ...

  8. canvas 基础知识整理(一)

    canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...

  9. canvas 基础知识

    canvas 基础 低版本的ie不支持html5,需要引入excanvas.js来让ie支持canvas. 检测支持canvas <canvas id="canvas" wi ...

随机推荐

  1. 面试阿里,字节跳动90%会被问到的Java异常面试题集,史上最全系列!

    Java异常架构与异常关键字 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程 ...

  2. Vegas技巧分享,如何实现5.1立体声道

    Vegas Pro 15除了有各种好用的功能之外,还可以使用此软件制作5.1立体声道的音乐.如果你家里有多个音箱,那么你再也不用担心找不到5.1声道的音乐了,Vegas完全可以帮你实现. 打开简体中文 ...

  3. 基于gin的golang web开发:永远不要相信用户的输入

    作为后端开发者我们要记住一句话:"永远不要相信用户的输入",这里所说的用户可能是人,也可能是另一个应用程序."永远不要相信用户的输入"是安全编码的准则,也就是说 ...

  4. C#6,C#7,V#8,C#9 的新特性总结

    看了一下,下图的所有我都有用过,感觉越高的版本越好用. C# 6.0 特性 C# 7.0  Vs2017 C# 8.0     .net core 3.0+ C#9.0 .net5 C#的各种语法糖, ...

  5. python3时间函数

    上一篇是生成测试报告的代码,如果重复运行测试报告名称相同会不停的覆盖,之前的测试报告也会丢失,无法追溯之前的问题.那么如何解决这个问题了呢? 首先想到的是用随机函数取随机名称,一旦生成的报告较多时,无 ...

  6. GraphicsLab 之 Atmospheric Scattering (二)

    作者:i_dovelemon 日期:2020-11-25 主题:Atmospheric Scattering, Volume Scattering, Rayleigh Scattering, Mie ...

  7. 基于openeuler aarch_64 下,从源码的角度搭建Tensorflow

    为什么从源码编译Tensorflow? 安装过的人们都知道如果 pip install tensorflow 的话会报错Your CPU supports instructions that this ...

  8. mfc c++优化

    1.不住求精度时,尽量使用单精度浮点型2.使用32位数据类型3.使用有符号和无符号整型: 前提:无需考虑正负时 double x; int i; x = i; 使用有符号:unsigned int i ...

  9. 从使用传统Web框架到切换到Spring Boot后的总结

    1.前言 其实我接触 Spring Boot 的时间并不长,所以还算一个初学者,这篇文章也算是我对 Spring Boot 学习以及使用过程中的复盘,如果文章出现描述错误或表达不清晰的地方,欢迎大家在 ...

  10. Centos7安装Kubernetes k8s v1.16.0 国内环境

    一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...