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

  1. rect()    创建矩形
  2. fillRect()   绘制‘被填充’矩形
  3. 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)的更多相关文章

  1. html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  2. HTML5 canvas绘制图形

    demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  3. 使用html5 canvas绘制图片

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  4. 使用html5 canvas绘制圆形或弧线

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  5. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

  6. 解决html5 canvas 绘制字体、图片与图形模糊问题

    html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...

  7. 使用 HTML5 Canvas 绘制出惊艳的水滴效果

    HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...

  8. 使用html5 Canvas绘制线条(直线、折线等)

    使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...

  9. HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版​

    <html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...

随机推荐

  1. PHP扩展之多线程

    PHP一直以为不支持多线程,后面才知道有基于pThread的扩展包,地址如下: http://php.net/manual/zh/book.pthreads.php 我感兴趣的是以下几个点: 1.Th ...

  2. MyBatis 模糊查询

    <!--${}是不进行预编译的,会直接进行sql语句的拼接:{}中的内容必须通过Map或者查询对象中获得--><select id="selectPersonByName& ...

  3. Spring 使用context:annotation-config的设置

    Spring 使用context:annotation-config的设置: 还是需要声明Bean的,并且还可能自己定义Annotation: xml: <?xml version=" ...

  4. node源码详解(五) —— 在main函数之前 —— js和C++的边界,process.binding

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource5 本博客同步在https://cnodejs.o ...

  5. 分享一些免费的MD5解密网站

    最近下载了几个mdb文件,里面几万条md5和几千条sha512(居然还有站长用512直接放在库中的,尼玛多占空间啊),我用C#写了个工具暴 力了一小部分,大概不到3%吧, 花了我两天,电脑卡得要死,效 ...

  6. Ubuntu 制作U盘启动盘

    部门需要一台Linux系统远程共享服务器,需要一个启动盘安装.但是由于公司windows 系统都安装了保安软件,而且软件的使用也是有限制的.所以不能使用UltraISO 这类软件制作U盘启动盘.还好部 ...

  7. Oracle执行计划顺序

    先从最开头一直往右看,直到看到最右边的并列的地方,对于不并列的,靠右的先执行:对于并列的,靠上的先执行.      即并列的缩进块,从上往下执行,非并列的缩进块,从下往上执行. 如下示例: Execu ...

  8. ArcGIS制图技巧系列(3)—让地图更有立体感

    ArcGIS制图技巧系列(3)-让地图更有立体感 by 李远祥 在前面的章节中,我们已经介绍过各种的地图效果,如发光效果,山体阴影效果,植被填充效果等,所有的这些效果不外乎是各种技术的叠加和技巧的使用 ...

  9. 使用vlmcsd自建KMS服务~一句命令激活windows/office

    服务作用:在线激活windows和office 适用对象:VOL版本的windows和office 适用版本:截止到win10和office2016的所有版本 服务时间:24H,偶尔更新维护 优点:在 ...

  10. IIS7.0发布后关于"不能在此路径中使用此配置节”的解决办法

    在系统为window sever2008,iis7.0上安装后发布出现 IIS Web Core 通知 BeginRequest 处理程序 尚未确定 错误代码 0x80070021 配置错误 不能在此 ...