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五星级超级 ...
随机推荐
- IM比较SipDroid/IMSDroid/CSipsimple/Linphone/Webrtc
一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器 ...
- RocketMQ源码 — 三、 Consumer 接收消息过程
Consumer pull message 订阅 在Consumer启动之前先将自己放到一个本地的集合中,再以后获取消费者的时候会用到,同时会将自己订阅的信息告诉broker 接收消息 consume ...
- POJ1273(最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70451 Accepted: 2739 ...
- DevExpress控件之RepositoryItemComboBox
RepositoryItemComboBox在嵌入到GridView后,如何获取当前所选的Item? 直接代码: ((RepositoryItemComboBox)gridView.Columns[& ...
- iOS视频压缩处理
最近忙于项目开发, 昨天才完成整个项目的开发, 今天就抽出时间, 分享一下我在开发中所涉及到的技术问题! 由于近期开发涉及到视频, 所以视频压缩, 上传, 播放等一系列功能都是要涉及到的, 所以在此, ...
- 内功心法 -- java.util.ArrayList<E> (6)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 初探Lambda表达式/Java多核编程【1】从集合到流
从集合到流 接上一小节初探Lambda表达式/Java多核编程[0]从外部迭代到内部迭代,本小节将着手使用"流"这一概念进行"迭代"操作. 首先何为" ...
- Professional C# 6 and .NET Core 1.0 - 38 Entity Framework Core
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 38 Entity Framework ...
- JAVA_file(1)
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径.http://www.s ...
- 判断数据是否服从某一分布(二)——简单易用fitdistrplus包
一.对数据的分布进行初步判断 1.1 原理 对于不同的分布,有特定的偏度(skewness)和峰度(kurtosis),正态分布.均匀分布.逻辑斯谛分布.指数分布的偏度和峰度都是特定的值,在偏 ...