HTML5—canvas绘制图形(1)
1、canvas基础知识
canvas元素是HTML5中新增的一个重要的元素,专门用来绘制图形,不过canvas本身不具备画图的能力,在页面中放置了canvas元素,就相当于在页面中放置了一块矩形的“画布”,我们可以利用js脚本在“画布”上绘制图形。
1.1canvas元素
在利用canvas绘制图形之前,我们首先需要在页面中放置一个canvas元素,如下代码:
<canvas id="mycanvas" width="400" height="400">您的浏览器out了</canvas>
说明:(1)放置canvas元素首先需要指定ID,widht,height三个属性,其中宽度跟高度只能通过这种方式指定,不可以通过css样式指定
(2)canvas标签里面的内容只有当浏览器不兼容canvas时,才会显示,当浏览器兼容canvas时,该内容将不显示,只显示绘制的内容
1.2画图环境
Canvas.getContext(contextID)
说明:(1)contextID 指定了您想要在画布上绘制的类型。当前唯一的合法值是 "2d",它指定了二维绘图。
(2)getContext() 方法会返回一个对象,这个对象给我们封装了很多的绘图方法和属性
1.3颜色的表示方式
- 颜色名称:"red" "green" "blue"
- 十六进制颜色值: "#FFFFFF"
- 三色值:rgb(1-255,1-255,1-255)
- 四色值:rgba(1-255,1-255,1-255,透明度)
1.4坐标系统
canvas坐标系是一个二维的平面。原点坐标(0,0)在canvas画布的左上角位置上,沿着水平向右方向是x轴正方向,垂直方向为y轴正方向
2、使用canvas绘制矩形
2.1 矩形API
- rect() 创建矩形
- fillRect() 绘制‘被填充’矩形
- strokeRect 绘制无填充矩形
参数说明:
- x:矩形起点的横坐标
- y:矩形起点的纵坐标
- width:矩形的长度
- height:矩形的宽度
2.2图形修饰
2.2.1颜色样式,阴影的方法和属性


部分方法属性使用说明:
createLinearGradient(xStart,yStart,xEnd,yEnd):该方法使用4个参数,xStart为渐变起始点的横坐标,yStart为渐变起始点的纵坐标,xEnd为渐变结束点的横坐标,yEnd为渐变结束点的纵坐标
addColorStop(offset,color):在使用createLinearGradient方法创建了一个使用两个坐标点的对象之后,还需要使用addColorStop方法对渐变的颜色进行设定,offset为所设定的颜色离开渐变起始点的偏移量,该参数是一个范围在0-1之间的浮点值i,渐变起始点的偏移量为0,渐变结束点的偏移量为1,下面用一个图形来说明这个参数(该图示是一个由蓝色变为白色再由白色渐变到红色的过程)

2.3开始绘制矩形
2.3.1绘制一个填充单一背景色的矩形
step1:在页面中放置一个canvas元素
<canvas id="mycanvas" width="" height="">您的浏览器out了</canvas>
step2:取得canvas元素
var mycanvas=document.getElementById('mycanvas');
step3:获取绘图环境
var context=canvas.getContext('2d');
step4:设定绘图样式
用canvas绘制图形的时候,有两种方式——填充(fill)与绘制边框(stroke),填充是指填满图形内部,绘制边框是指不填满图形内部只绘制图形的外框,canvas元素结合使用者两种方式来绘制图形
context.fillStyle='red'; //fillStyle设置填充颜色
context.strokeStyle='blue'; //strokeStyle设置边框颜色
context.lineWidth=3; //lineWidth设置图形边框的宽度
step5:开始绘制矩形
canvas分别使用fillRect方法与strokeRect方法来填充矩形和绘制矩形的边框
context.fillRect(50,50,100,100);
context.strokeRect(50,50,100,100);
效果预览:

2.3.2绘制一个线性渐变的矩形
step1:在该实例中,我们将直接从绘制矩形开始讲,设置矩形样式
context.strokeStyle='blue'; //strokeStyle设置边框颜色
context.lineWidth=3; //lineWidth设置图形边框的宽度
var oColor=context.createLinearGradient(0,0,150,0); //创建一个线性渐变对象
oColor.addColorStop(0,'red'); //渐变由红色开始
oColor.addColorStop(1,"white"); //过渡到白色
context.fillStyle=oColor; //将矩形的样式设置成线性渐变
step2:开始绘制矩形
context.strokeRect(50,50,100,100);
context.fillRect(50,50,100,100);
step3:完整代码
var mycanvas=document.getElementById('mycanvas'); //获取canvas对象
var context=mycanvas.getContext('2d'); //getContext会返回一个对象,这个对象封装了很多绘图的属性和方法
context.strokeStyle='blue'; //strokeStyle设置边框颜色
context.lineWidth=3; //lineWidth设置图形边框的宽度
var oColor=context.createLinearGradient(0,0,150,0); //创建一个线性渐变对象
oColor.addColorStop(0,'red'); //渐变由红色开始
oColor.addColorStop(1,"white"); //过渡到白色
context.fillStyle=oColor; //将矩形的样式设置成线性渐变
context.strokeRect(50,50,100,100);
context.fillRect(50,50,100,100);
step4:效果预览

2.3.3绘制一个带阴影的矩形
step1:设置矩形样式以及阴影样式
context.fillStyle='red'; //设置矩形的填充颜色
context.shadowBlur=20; //设置阴影的模糊级别
context.shadowColor='black'; //设置阴影的颜色
step2:开始绘制矩形
context.fillRect(50,50,100,100);
step3:完整代码
var mycanvas=document.getElementById('mycanvas'); //获取canvas对象
var context=mycanvas.getContext('2d'); //getContext会返回一个对象,这个对象封装了很多绘图的属性和方法
context.fillStyle='red'; //设置矩形的填充颜色
context.shadowBlur=20; //设置阴影的模糊级别
context.shadowColor='black'; //设置阴影的颜色
context.fillRect(50,50,100,100);
效果预览:

HTML5—canvas绘制图形(1)的更多相关文章
- html5 Canvas绘制图形入门详解
html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...
- HTML5 canvas绘制图形
demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 使用html5 canvas绘制图片
注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...
- 使用html5 canvas绘制圆形或弧线
注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...
- 学习笔记:HTML5 Canvas绘制简单图形
HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...
- 解决html5 canvas 绘制字体、图片与图形模糊问题
html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...
- 使用 HTML5 Canvas 绘制出惊艳的水滴效果
HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...
- 使用html5 Canvas绘制线条(直线、折线等)
使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...
- HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版
<html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...
随机推荐
- C++ 头文件系列(map)
简介 该头文件包含两个概念相似的容器----map.multimap. 而这两个容器反映的概念就是 映射. 这两个容器 相同 的属性有: 关联性 映射 动态增长 键(Key)唯一性 这两个不相同的属性 ...
- 使用 visualstudio code 编辑器调试执行在 homestead 环境中的 laravel 程序
由于之前做 .net 开发比较熟悉 visualstudio,所以自 visualstudio code 发布后就一直在不同场合使用 vscode ,比如前端.node等等.最近在做 laravel ...
- haproxy学习
1.安装 # wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz # tar zcvf haproxy-1.3.20.t ...
- 面试之MySQL基本命令
既然要操作数据库就从数据库链接写起,包括建库.建表.增删该查字段及约束,删库,删表的数据,以下主要是对我以往面试的总结,欢迎补充! 一.数据库连接 1.连接本机(p和密码123456之间无空格) my ...
- (@WhiteTaken)设计模式学习——单例模式
单例模式,个人理解就是,使用了这个模式,可以保证一个类只生成唯一的实例对象.就是在整个程序中,这个类只存在一个实例对象. GoF对单例模式的定义:保证一个类,只有一个实例存在,同时提供能对该实例加以访 ...
- Xamarin组件包 Xamarin.ToolKit
一 简介 Xamarin.ToolKit是个人在使用xamrin.froms开发2年中,因实际项目需要所自定义的组件包.该组件包采用xamarin.froms方式封装,用户可像普通forms控件那样 ...
- ZooKeeper配额
ZooKeeper可以在znode上设置配额限制.如果超出了配置限制,ZooKeeper将会在log日志中打印WARN日志.如果超出配额限制,并不会停止行为操作. ZooKeeper的配额是存储在/z ...
- 关于BOM的理解
BOM提供了很多对象,用于访问浏览器的功能,这些功能与网页内容无关 BOM的核心对象时window,她表示浏览器的一个实例 window的双重角色 1.JS访问浏览器窗口的一个接口 2.ECMA ...
- TCP协议详解
TCP协议详解 一.TCP协议 1.TCP 通过以下方式提供可靠性: · ◆ 应用程序分割为TCP认为最合适发送的数据块.由TCP传递给IP的信息单位叫做报文段. · ◆ 当TCP发出一个报文段后 ...
- mybatis的动态sql中collection与assoction
User.java, Role.java,address.java为三个类 public class User { .....//user自己的属性//association一对一 private R ...