摘要:

HTML5规范已经完成了,互联网上已经有数不清的站点使用了HTML5。从现在开始研究HTML5,本文是自己在学习canvas过程中的记录,以备后需。

历史:

这个 HTML 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上。canvas标记由 Apple 在 Safari 1.3 Web 浏览器中引入。对 HTML 的这一根本扩展的原因在于,HTML 在 Safari 中的绘图能力也为 Mac OS X 桌面的 Dashboard 组件所使用,并且 Apple 希望有一种方式在 Dashboard 中支持脚本化的图形。

浏览器:

从图中可以看出IE9+都支持canvas。

API:

使用前,首先需要新建一个canvas网页元素。如下:

1 2 您的浏览器版本太低,不支持canvas!3

如果浏览器不支持canvas标签,页面上就会显示‘您的浏览器版本太低,不支持canvas!’。每个canvas元素都有一个方法--getContext方法,返回一个用于在画布上绘图的环境。

1 var canvas = document.getElementById('myCanvas');2 canvas.getContext(contextID);

参数:

参数 contextID 指定了您想要在画布上绘制的类型。当前唯一的合法值是 "2d",它指定了二维绘图,并且导致这个方法返回一个环境对象,该对象导出一个二维绘图 API。

返回值:

返回一个表示用来绘制的环境类型的环境。其本意是要为不同的绘制类型(2 维、3 维)提供不同的环境。当前,唯一支持的是 "2d",它返回一个 CanvasRenderingContext2D 对象,该对象实现了一个画布所使用的大多数方法。

在画图之前先讲下坐标,每一个图的原点坐标(0,0)在图的左上角,x轴正方向水平向右,y轴正方向水平向下。

Demo:

1、线

1 2 您的浏览器不支持canvas!3

4

注意:moveTo和lineTo方法可以多次使用。最后可以用closePath方法,自动绘制一条当前点到起点的直线,形成一个封闭图形,也可以使用一次lineto方法来封闭图形。

2、三角形

1 2 您的浏览器不支持canvas!3

4

3、正方型

1 2 您的浏览器不支持canvas!3

4

4、矩形

1 2 您的浏览器不支持canvas!3

4

5、空心矩

1 2 您的浏览器不支持canvas!3

4

清楚填充矩形一部分

1 2 您的浏览器不支持canvas!3

4

6、圆形

填充圆

1 2 您的浏览器不支持canvas!3

4

空心圆

1 2 您的浏览器不支持canvas!3

4

7、绘制文本

1 2 您的浏览器不支持canvas!3

4

注意:fillText和strokeText方法不支持文本断行

8、渐变色

1 2 您的浏览器不支持canvas!3

4

圆形渐

1 2 您的浏览器不支持canvas!3

4

边框渐变

1 2 您的浏览器不支持canvas!3

4

9、设置阴影

1 2 您的浏览器不支持canvas!3

4

附录:

颜色、样式和阴影

属性

描述

fillStyle

设置或返回用于填充绘画的颜色、渐变或模式

strokeStyle

设置或返回用于笔触的颜色、渐变或模式

shadowColor

设置或返回用于阴影的颜色

shadowBlur

设置或返回用于阴影的模糊级别

shadowOffsetX

设置或返回阴影距形状的水平距离

shadowOffsetY

设置或返回阴影距形状的垂直距离

方法

描述

createLinearGradient()

创建线性渐变(用在画布内容上)

createPattern()

在指定的方向上重复指定的元素

createRadialGradient()

创建放射状/环形的渐变(用在画布内容上)

addColorStop()

规定渐变对象中的颜色和停止位置

线条样式

属性

描述

lineCap

设置或返回线条的结束端点样式

lineJoin

设置或返回两条线相交时,所创建的拐角类型

lineWidth

设置或返回当前的线条宽度

miterLimit

设置或返回最大斜接长度

矩形

方法

描述

rect()

创建矩形

fillRect()

绘制“被填充”的矩形

strokeRect()

绘制矩形(无填充)

clearRect()

在给定的矩形内清除指定的像素

路径

方法

描述

fill()

填充当前绘图(路径)

stroke()

绘制已定义的路径

beginPath()

起始一条路径,或重置当前路径

moveTo()

把路径移动到画布中的指定点,不创建线条

closePath()

创建从当前点回到起始点的路径

lineTo()

添加一个新点,然后在画布中创建从该点到最后指定点的线条

clip()

从原始画布剪切任意形状和尺寸的区域

quadraticCurveTo()

创建二次贝塞尔曲线

bezierCurveTo()

创建三次方贝塞尔曲线

arc()

创建弧/曲线(用于创建圆形或部分圆)

arcTo()

创建两切线之间的弧/曲线

isPointInPath()

如果指定的点位于当前路径中,则返回 true,否则返回 false

转换

方法

描述

scale()

缩放当前绘图至更大或更小

rotate()

旋转当前绘图

translate()

重新映射画布上的 (0,0) 位置

transform()

替换绘图的当前转换矩阵

setTransform()

将当前转换重置为单位矩阵。然后运行 transform()

文本

属性

描述

font

设置或返回文本内容的当前字体属性

textAlign

设置或返回文本内容的当前对齐方式

textBaseline

设置或返回在绘制文本时使用的当前文本基线

方法

描述

fillText()

在画布上绘制“被填充的”文本

strokeText()

在画布上绘制文本(无填充)

measureText()

返回包含指定文本宽度的对象

图像绘制

方法

描述

drawImage()

向画布上绘制图像、画布或视频

像素操作

属性

描述

width

返回 ImageData 对象的宽度

height

返回 ImageData 对象的高度

data

返回一个对象,其包含指定的 ImageData 对象的图像数据

方法

描述

createImageData()

创建新的、空白的 ImageData 对象

getImageData()

返回 ImageData 对象,该对象为画布上指定的矩形复制像素数据

putImageData()

把图像数据(从指定的 ImageData 对象)放回画布上

合成

属性

描述

globalAlpha

设置或返回绘图的当前 alpha 或透明值

globalCompositeOperation

设置或返回新图像如何绘制到已有的图像上

其他

方法

描述

save()

保存当前环境的状态

restore()

返回之前保存过的路径状态和属性

createEvent()

getContext()

toDataURL()

html平面图绘制,HTML5标签canvas制作平面图相关推荐

  1. HTML5标签canvas制作平面图

    摘要: HTML5规范已经完成了,互联网上已经有数不清的站点使用了HTML5.从现在开始研究HTML5,本文是自己在学习canvas过程中的记录,以备后需. 历史: 这个 HTML 元素是为了客户端矢 ...

  2. php 3d animation,如何用HTML5的Canvas制作3D动画效果

    HTML5的诞生给web前端界带来了不小轰动,像什么动画旋转.图片滑块.图片轮播等等这些3D特效,也引发了不少朋友想要学习HTML5的好奇心.最近我一直在做canvas动画效果,发现canvas这个东 ...

  3. html5的canvas制作口红机闯关游戏(一)

    目的 最近实践课让随便做小项目,准备学习下h5的canvas画布功能,参考canvas实现的见缝插针游戏,来制作一个口红机闯关小游戏,学习实践过程问题记录和canvas功能学习整理. 什么是canva ...

  4. 让人脸动起来html源码,分享利用HTML5的Canvas制作人脸的实例代码

    这里主要使用了 HTML5 的 Canvas 进行绘制.利用html5制作人脸的实例代码. 先看我们要绘制的人脸效果图: 这里主要使用了 HTML5 的 Canvas 进行绘制. 下面我们开始整个绘制 ...

  5. 平面图之HTML5、Canvas、SVG

    最近项目里遇上一楼宇画平面图,暂时还没什么想法,希望园子里的大虾和牛人们多指教.多指点.谈谈建议和想法也行.能深入到技术实现层面最好不过了,在此先谢过各位了!下面大致简单说下我项目里关于这一块的业务. ...

  6. html八卦绘制,通过HTML5标签canvas绘制一个八卦图案

    只需要用到casvas标签和fillStyle.arc.beginPath.closePath.fill方法 代码如下: var id=document.getElementById("re ...

  7. HTML5用canvas制作飞机大战小游戏

    css样式: <!DOCTYPE html> <html lang="en"><head><meta charset="UTF- ...

  8. html5基于canvas制作酷炫,应用HTML5 Canvas制作酷炫科技背景动画特效

    更多特效代码请添加HTML5前端交流群111645711 看这性感的线条,激情的律动! 废话不多说,上代码! 源代码 需要文档版本源码,可以加我的HTML5前端交流群111645711 * { mar ...

  9. 在html利用canvas蚂蚁,html5 利用canvas实现简单的人物走动

    最近在学习html5,其中涉及到很关键的元素canvas-画布,在网上下载了一些游戏源代码,虽然能看懂,但是想单独地针对某个功能提取出来还是有难处的,于是乎自己又上网查找了一些例子,才将超级玛丽简单的 ...

最新文章

  1. 论排列组合,持续更新
  2. github命令行操作
  3. 网页如何调用flash的方法
  4. PHP代码审计中你不知道的牛叉技术点
  5. SAP Spartacus 的页面设计思路
  6. 【Linux系统编程学习】 动态库的制作与使用
  7. 从 Google Code 迁移代码到 GitHub 上
  8. 使用阿基米德螺线进行数据可视化
  9. OSPF通过MPLS ×××
  10. linux关闭mysql日志记录_linux 下mysql 运行一段时间后自动关闭,日志无异常
  11. 如何应用Matlab plot画点
  12. kindeditor富文本编辑器下载使用
  13. 安装flash cs6失败解决方案
  14. seaweedfs问题处理
  15. 在移动硬盘上安装Deepin Linux 操作系统
  16. 黑客知识之7种DoS攻击方法简述
  17. 无线网卡被服务器禁用,wifi共享精灵无线网卡被禁用或被接管解决教程
  18. 豆芽的生长过程观察日记-绿豆发芽观察日记7天-2021年
  19. 【工具】MobaXterm常用设置
  20. ext 中checkbox 无法取消选中行,全选按钮全选问题

热门文章

  1. HDFS基础文件操作实验
  2. 个性化推荐哪个平台好?个性化推荐平台有哪些?
  3. Flume HDFS Sink配置详解
  4. linux卸载软件maven,linux/mac下一键删除下载失败的maven jar包
  5. 逐行扫描和隔行扫描的区别和原理
  6. 牛客编程巅峰赛S1第6场 - 黄金钻石王者题解
  7. java鸭子类型_Golang中的接口与鸭子类型
  8. python鸭子类型与protocol
  9. centos7升级pip版本
  10. 通讯协议与即时通讯杂谈