html5图片的渐变_绘制图形


什么是 canvas?

通常情况下,我们可以认为和


但是两者有本质的不同:


是HTML5中用于绘制图形的新标签,标签仅仅是一个图形容器,它通过使用JavaScript脚本语言进行绘制图形。

我们可以通过多种方法使用canvas绘制路径,盒、圆、字符以及添加图像。

创建一个画布

这个单词的本意是“油画布”,所以我们可以通过在浏览器显示区域绘制一个“区域”用以的位置固定和内容呈现。

一个画布在网页中是一个矩形框,通过 元素来绘制。但是,默认情况下的 元素是没有边框和内容。

简单实例如下:

标签通过一个id选择器,在浏览器中绘制了一个200x100大小的矩形。然后我们进一步使用style属性来添加边框。

代码效果如下:


html5图片的渐变_绘制图形_02


使用 JavaScript 来绘制图像

元素自己是没有任何绘制图形能力的,所以绘制工作必须使用JavaScript完成。

别怂,一起读代码。

首先定义了一个变量 c,让其找到刚刚我们定义的元素;

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext("2d") 对象是HTML5对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";ctx.fillRect(0,0,150,75);

fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

代码效果如下:


html5图片的渐变_html5图片的渐变_03


canvas 的坐标

现在注意上面的JavaScript代码中,最后一行的括号中有一个(0,0)。这就是一个坐标。


html5图片的渐变_绘制图形_04


是一个二维网格。任何一个绘制的图形都需要制定图形的起始位置和大小。

的左上角坐标为 (0,0)。

fillRec方法中的参数 (0,0,150,75) 表示:从左上角开始 (0,0),在画布上绘制 150x75的矩形。

canvas 的路径

若是在canvas画布上画一条直线,我们就需要使用以下两种方法:

  • moveTo(x,y) 定义线条开始坐标
  • lineTo(x,y) 定义线条结束坐标

定义开始坐标(0,0), 和结束坐标 (200,100)。然后使用 stroke() 方法来绘制线条。

代码效果如下:


html5图片的渐变_绘制图形_05


接下来,我们来绘制一个圆。

在canvas中绘制圆形, 我们将使用以下方法:

arc(x,y,r,start,stop);

在这个方法中,我们需要了解以下3个概念:


html5图片的渐变_html5图片的渐变_06


完整的JavaScript代码如下:

通过以上代码,我们就能绘制一个中心点在(95,50),圆半径为40的一个正圆。

代码效果如下:


html5图片的渐变_绘制图形_07


canvas 的文本

使用canvas绘制文本,重要的属性和方法如下:

  • font - 定义字体
  • fillText(text,x,y) - 在 canvas 上绘制实心的文本
  • strokeText(text,x,y) - 在 canvas 上绘制空心的文本

我们现在使用 "Arial" 字体在画布上绘制一个高 30px 的文字(实心),代码如下: