简介

HTML5新增了canvas元素,我们可以利用canvas绘制各种图形文本图表等,熟悉使用canvas还可以写出各种多彩的特效。

只是声明一张画布,本身并没有绘图能力,我们需要利用JS来实现绘图。

Document

您的浏览器不支持canvas

使用JS来绘制图形

从上面的步骤我们创建了一个画布,现在我们开始利用JS获取到元素,然后绘制一个简单的图形。

您的浏览器不支持canvas

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

ctx.fillStyle="#FF0000";//填充色

ctx.fillRect(0,0,200,200);//填充

ctx.strokeStyle="#0000FF";//画笔色

ctx.moveTo(0,0);

ctx.lineTo(200,200);

ctx.stroke();//描线

下面绘制一个圆形

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

ctx.beginPath();

ctx.arc(95,50,40,0,2*Math.PI);//绘制圆形

ctx.stroke();

上面是一个简单填充和描线的案例,我们需要熟记一些常用的方法,才能流畅绘图。

canvas绘制文本

除了图形,canvas还可以绘制文本,使用fillText(text,x,y)方法填充实心文本,stroke(text,x,y)方法绘制空心文本。

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

ctx.fillStyle="#FF0000";

ctx.font="30px Arial";

ctx.fillText("Hello",20,50);//填充文本

ctx.strokeStyle="#0000FF";

ctx.strokeText("你好",100,50);//绘制文本

canvas创建渐变

canvas可以填充各种形状,也可以创建渐变色填充。createLinearGradient(x,y,x1,y1)创建线性渐变,createRadialGradient(x,y,r,x1,y1,r1)创建径向渐变。

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

// 创建渐变

var gdt=ctx.createLinearGradient(0,0,200,0);

gdt.addColorStop(0,"#FF0000");

gdt.addColorStop(1,"#0000FF");

// 填充渐变

ctx.fillStyle=gdt;

ctx.fillRect(20,20,170,120);

径向渐变

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

// 创建渐变

var gdt=ctx.createRadialGradient(100,75,5,120,90,100);

gdt.addColorStop(0,"#FF0000");

gdt.addColorStop(1,"#0000FF");

// 填充渐变

ctx.fillStyle=gdt;

ctx.fillRect(20,20,170,100);

canvas绘制图像

除了绘制图形,canvas还能将已有的图像资源放入画布中,使用drawImage(image,x,y)方法绘制图像。

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

var img = document.getElementById('img');

ctx.drawImage(img,20,20);//绘制图像资源

html5 2d绘图,HTML5 canvas绘图相关推荐

  1. html画布创建黑白象棋棋盘,HTML5学习与加固——canvas绘图象棋盘

    1 2 3 4 5 6 canvas绘图_象棋盘 7 8 9 10 不支持Canvas 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 varob ...

  2. vue页面绘图_Vue+Canvas绘图使用

    1. 前言 图片储存在后台中,根据图片的地址,在vue页面中,查看图片,并根据坐标标注指定区域. 由于浏览器的机制,使用window.location.href下载图片时,并不会保存到本地,会在浏览器 ...

  3. Android中Canvas绘图基础详解(附源码下载)

    看到了一篇比较详细的Canvas文章,转过来方便自己查看. 源地址:http://blog.csdn.net/iispring/article/details/49770651 Android中,如果 ...

  4. HTML5 学习总结(四)——canvas绘图、WebGL、SVG

    目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML ...

  5. html5笔迹画图,html5绘图工具canvas模拟笔迹绘画特效

    特效描述:html5绘图工具 canvas 模拟笔迹 绘画特效.html5绘图工具使用鼠标在网页上进行写字,canvas绘画模拟笔迹特效 代码结构 1. HTML代码 sorry! //定义获取id ...

  6. html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图

    HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...

  7. 使用html画简单的图形,HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图...

    HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把. 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是 ...

  8. html5 canvas 画阿迪达斯logo,canvas绘图画出了的美团LOGO

    接下来是用HTML新标签canvas绘图画出了的美团LOGO. canvas练习 var canvas=document.getElementById('myfirstcanvas'); canvas ...

  9. HTML5 2D游戏引擎研发系列 第四章 Canvas技术篇-画布技术-基于手动切片动画

    作者:HTML5游戏开发者社区-白泽 转载请注明出处:http://html5gamedev.or HTML5 2D游戏引擎研发系列 第四章 <Canvas技术篇-画布技术-基于手动切片动画&g ...

最新文章

  1. 求助贴:人工智能offer,阿里or腾讯,选哪个?
  2. electron创建菜单
  3. 记一次fastjson转jackson的生产事故
  4. mysql my-small.ini_MySql优化之my-small.ini配置
  5. tmap的使用_MapInfo教程--二次开发入门
  6. Deep Zoom Composer 正式版发布!
  7. AtCoder Beginner Contest 211 E - Red Polyomino(暴力+状态记录)
  8. WebApp用组件方式开发全站
  9. Java并发编程:Lock(上)
  10. Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
  11. VUe Eelement-ui 兼容es6 兼容IE9+ 报错:SCRIPT1003: 缺少 ':’
  12. PDF虚拟打印机的功能详解和使用方法
  13. 200行Python代码实现B站UP主小助手(显示视频播放数、粉丝数等)
  14. 导弹防御系统(LIS+dfs)
  15. 【LeetCode】1655. Distribute Repeating Integers 分配重复整数
  16. 推荐几个9月爆火的 GitHub 电商项目
  17. 人立方六度搜索的界面设计的来龙去脉
  18. 地球同步轨道、太阳同步轨道知识
  19. DDR3 ECC 应用总结
  20. leetcode765_情侣牵手_贪心

热门文章

  1. HDU1755 A Number Puzzle【全排列+暴力】
  2. linux服务器创建FTP
  3. 《MATLAB R2012a超级学习手册》一第1章 MATLAB概述
  4. PHP for 循环
  5. weblogic .NoClassDefFoundError: Could not initialize class sun.awt.X11Graphi
  6. 解决VMware Workstation下面Windows Server 2012R2无法安装Hyper-V
  7. 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解
  8. 大话IT职场之搞技术是青春饭吗?
  9. 5-2 持久化的作用/5-3 RDB1/5-4 RDB2/5-5 RDB3
  10. python面向对象编程指南 豆瓣_一文看懂Python面向对象编程(Python学习与新手入门必看)-绝对原创...