一、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. css中渐变的分割线和自定义滚动条样式

    css中渐变的分隔线: <div style="background:linear-gradient(to left,#efefef,#b6b6b6,#efefef);height:1 ...

  2. MathType可以和哪些Microsoft Office版本一起使用?

    Office类软件可能是我们碰到电脑后,最先接触到的电脑软件了.尤记得,当初的微机课一开始就会讲word和excel的使用,一开始可能学不太明白,但后来越来越频繁的使用office软件,不说offic ...

  3. react-hash-calendar,移动端日期时间选择插件

    按照惯例,先上效果图 vue 版本同款日历:https://github.com/TangSY/vue-hash-calendar react-hash-calendar 支持手势滑动操作 上下滑动 ...

  4. js 表格上checkbox 全选

    <table class="layui-table"> <thead> <tr> <th width="75"> ...

  5. 免费AWS云服务器一键搭建Trojan详细教程

    前言 想要撸AWS服务器的可以看我上一篇博客,这里就不介绍了,以下步骤有问题的朋友可以私信或者评论区留言. 配置AWS云服务器 选择语言,博主写了博客后才看到,前面都是使用谷歌翻译. 选择地区 创建虚 ...

  6. 【数学】康托展开 && 康托逆展开

    (7.15)康托展开,就是把全排列转化为唯一对应自然数的算法.它可以建立1 - n的全排列与[1, n!]之间的自然数的双向映射. 1.康托展开: 尽管我并不清楚康托展开的原理何在,这个算法的过程还是 ...

  7. Educational Codeforces Round 92 (Rated for Div. 2) B、C题解

    TAT 第一场codeforces B. Array Walk #暴力 #贪心 题目链接 题意 有\(a1, a2, ..., an\) 个格子(每个格子有各自分数),最初为1号格(初始分数为\(a1 ...

  8. C语言讲义——库函数排序qsort

    qsort函数在在stdlib.h中. 函数原型 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void ...

  9. Django 的模板语法之过滤器

    后端朝前端页面传递数据的方式 # 第一种 return render(request,'index.html',{'n':n}) # 第二种 return render(request,'index. ...

  10. fist-第五天冲刺随笔

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...