今天的目标

3.1:canvas绘图--(重点掌握:渐变对象.路径.图片.变形)

3.2:canvas绘图--渐变对象

线性渐变: linearGradient

径向渐变:

var g = ctx.createLinearGradient(x1,y1,x2,y2);

g.addStopColor(offset,color);

..

ctx.fillStyle = g;

ctx.strokeStyle = g;

3.3:canvas绘图--路径(最复杂)

Path:由多个坐标点组成任意形状,路径不见,可用于

"描边","填充","裁剪"...

ctx.beginPath();     开始一条新路径

ctx.closePath();     闭合当前路径

ctx.moveTo(x,y);    移动指定点

ctx.lineTo(x,y);      从当前点到指定点画直线

ctx.arc(cx,cy,r,start,end); 绘制圆拱形

cx cy 圆心

r    半径

start 开始角度   (弧度0~2*PI)

end  结束角度   角度*Math.PI/180==弧度

ctx.stroke();       描边

ctx.fill();          填充

练习:使用描边绘制一个坐标轴

练习:使用圆拱形绘制可以前进的圆环进度条

练习:创建一个函数openMouth()/closeMouth();

创建定义时器,每隔1s交替调用

openMouth()/closeMouth();

3.4: canvas绘图--图片

canvas属于客户端技术,图片在服务器中,所以浏览器必须先下载要绘制的图片,且等待图片异步加载完成.

var p3 = new Image();      创建图片对象

p3.src = "x.jpg";          下载指定图片

p3.onload = function(){     图片下载完成触发事件

console.log(p3.width);

ctx.drawImage(p3,x,y);    原始大小绘图

ctx.drawImage(p3,x,y,w,h); 拉伸绘图

}

练习:在画布四个角各画一架飞机

练习:在画布左上角画一个左右移动飞机

canvas绘图核心知识点--重占

绘制矩形:

ctx.fillRect();ctx.strokeRect();ctx.clearRect();

绘制文本

ctx.fillText();ctx.strokeText();ctx.measureText().width

绘制路径

ctx.beginPath();ctx.closePath();

ctx.moveTo();ctx.lineTo();

ctx.arc();ctx.stroke();ctx.fill()

绘制图像

ctx.drawImage();

3.4: canvas绘图--变形操作

canvas绘图可以针对于某一个图像/图形,的绘制过程

进行变形 rotate,translate

ctx.rotate(弧度);      旋转画笔,轴点画布的原点.

ctx.translate(x,y);     平移原点

ctx.save();           保存画笔状态(存盘)

ctx.restore();        恢复画笔状态到上一次保存(读取存盘)

练习:在画布左上角画一个绕自己为中心旋转飞机1

练习:在画布右上角画一个绕自己为中心旋转飞机2

飞机2旋转速度是飞机1 2倍svg绘图

练习:使用canvas绘制随机改变验证码图片!

var str = "ABC..abcdefghim...1234567890";

var char = str[字符串长度随机数] 17:45~17:57

要求:

画布背景随机颜色[浅色],ctx.fillRect();

文字内容随机,大小随机,颜色随机(深色),旋转角度随机

5条随机干扰线(深色), 贝赛尔曲线

100个干扰点(半径为1圆)

H5新特性-canvas绘图--渐变对象路径(最复杂)--图片--变形操作的更多相关文章

  1. H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图

    今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...

  2. HTML新特性--canvas绘图-文本

    一.html5新特性--canvas绘图-文本(重点) #常用方法与属性 -ctx.strokeText(str,x,y);   绘制描边文字(空心) str:绘制文本 x,y:字符串左上角位置(以文 ...

  3. H5新特性-视频,音频-Flash-canvas绘图

    json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ...

  4. H5新特性汇总

    H5新特性: 新增选择器 document.querySelector.document.querySelectorAll 拖拽释放(Drag and drop) API 媒体播放的 video 和 ...

  5. H5新特性---SVG--椭圆--直线--文本--滤镜(高斯滤镜--模糊)--地理定位

    今天的目标 3.1:h5新特性--SVG--椭圆 <ellipse rx="" ry=""  cx="" cy="" ...

  6. H5新特性---Web Worker---Web Stroage

    今天的目标 3.1:h5新特性八--Web Worker---代码就3行 程序:program 存储在外存(磁盘)中代码 进程:Process/Task 将程序调用内存中,分配空间 线程:Thread ...

  7. H5新特性--WebStorage--WebSocke

    今天的目标 3.2:h5新特性--WebStorage localStorage  在客户端浏览器保存数据 永久保存 保存数据 localStorage [key] = value 保存数据 loca ...

  8. H5新特性实现对class的增删改

    直接撸代码 全靠死记硬背 没什么技术点 HTML部分 <!DOCTYPE html> <html lang="en"> <head> <m ...

  9. Atitti html5 h5 新特性attilax总结

    Atitti html5 h5 新特性attilax总结 Attilax觉得不错的新特性 3.语义Header和Footer (The Semantic Header and Footer) 8.占位 ...

随机推荐

  1. [C#]打包项目[转]

    原文:https://www.cnblogs.com/danyu/p/7243706.html 加入自定义操作:https://blog.csdn.net/ristal/article/details ...

  2. 性能学习随笔(1)--负载均衡之f5负载均衡

    负载均衡设计涉及软件负载和硬件负载,下文转自CSDN中一篇文章涉及f5硬负载知识 ----转载:https://blog.csdn.net/tvk872/article/details/8063489 ...

  3. 深度学习原理与框架-图像补全(原理与代码) 1.tf.nn.moments(求平均值和标准差) 2.tf.control_dependencies(先执行内部操作) 3.tf.cond(判别执行前或后函数) 4.tf.nn.atrous_conv2d 5.tf.nn.conv2d_transpose(反卷积) 7.tf.train.get_checkpoint_state(判断sess是否存在

    1. tf.nn.moments(x, axes=[0, 1, 2])  # 对前三个维度求平均值和标准差,结果为最后一个维度,即对每个feature_map求平均值和标准差 参数说明:x为输入的fe ...

  4. EasyUI在window中使用kindeditor 4.1.10在IE9中不能回显、获得焦点编辑的问题

    描述 :kindeditor4.1.10版本是当前最新的版本,在浏览器兼容性和功能方面都是值得一赞的,在开发中能方便快捷的满足一些开发需求. 问题 :  问题总是有的.  在使用过程中,遇到EasyU ...

  5. linux上如何设置网络,出现connect: network is unreachable 的问题。

    发现有网友问有关ping命令出现connect: network is unreachable 的问题. 这通常是因为没正确设置ip地址. 解决方法: 在确保完善网卡驱动,以及确保将网卡驱动编译进内核 ...

  6. 【转】BFG Repo-Cleaner: Removes large or troublesome blobs like git-filter-branch does, but faster.

    https://rtyley.github.io/bfg-repo-cleaner/ an alternative to git-filter-branch The BFG is a simpler, ...

  7. Unity Shader笔记

    shader “MyShader”{ Properties{ -CubeMap(“Cube Map” , Cube) = ""{这里可以添加图片渲染模式} } SubShader{ ...

  8. express 内存溢出问题分析定位

    一.现象 1. 如下报错 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 1: n ...

  9. /etc/security/limits.conf的相关说明

    今天遇到root账户登录不了的情况,很是郁闷,即使单用户修改了root密码也不能登录. 所以就特意看了一下/etc/security/limits.conf,发现是下面这样的.感觉呗坑了许久.(标红线 ...

  10. 吐血Eclipse Maven Selenium TestNG的各种坑

    刚入坑不久,有些是自己知识储备不够造成的,有些...那就是坑 在eclipse里面新建maven项目,然后添加testgn依赖,不多说,这个简单. 第一个坑: 然后在src/test/java这个文件 ...