html5 canvas入门知识

什么是canvas?

使用canvas,可以在网页上绘制图像。我们常见的图表类网页、地图类网页上面那些复杂的图像、炫酷的效果,都可以使用canvas来实现。通俗点说,canvas就是画家手中的画板,用js作笔来画出心中的恢弘山河。

canvas拥有多种绘制路径、矩形、圆形、字符以及添加其他图像的方法。

用一个简单栗子来认识它

在网页上绘制一个圆

<canvas id="cvs" width="300" height="300"</canvas>
<script>
    var canvas = document.getElementById('cvs');

//    判断是否支持canvas
    if(canvas.getContext){
        //获取canvas上下文
        var ctx = canvas.getContext('2d');
        //定义一个路径
        ctx.beginPath();
        //画一个圆形路径
        ctx.arc(50,50,50,0,Math.PI*2);
        //定义填充颜色
        ctx.fillStyle = "rgb(160,224,0)";
        //填充圆形
        ctx.fill();
    }else{
        console.info('当前浏览器不支持canvas属性');
    }
</script>

通过上面的示例 我就在一个300*300的画布上面,以偏移左上角x轴、y轴各50px的点为圆心,画了一个半径为50px的圆。

效果图-1

看过一个简单的栗子之后,让我们来了解一下canvas常见的一些方法。

常用方法

  • 获取canvas上下文
var context = canvas.getContext('2d');

可能有些人会好奇,这里为什么是2d,难道还有3d吗?答案是有的。
比如:WebGL 使用了基于OpenGL ES的3D上下文 ("experimental-webgl") 。
但是我们现在主要把注意力放到2d渲染上下文中。

  • 绘制图像类型
    填充——context.fill()
    描边——context.stroke()

  • 绘制的样式
    填充颜色——context.fillStyle
    描边颜色——context.strokeStyle
    在样式中,可以有几种表示颜色的方法

    • 直接用颜色名称:red green blue
    • 使用十六进制值:#eef
    • 使用rgb颜色:rgb(1-255,1-255,1-255) rgba(1-255,1-255,1-255,透明度)
  • 绘制路径
    绘制路径,就相当于我们定了一个物件的轮廓,然后我们就可以对它进行描边或者填充让它变得可见。
    绘制线条——context.lineTo(x,y)
    绘制圆弧——context.arc(x,y,radius,startAngle,endAngle,anticlockwise)
    我们可以用线条和圆弧来组合各种复杂的形状,然后对它进行填充或描边。但是还有两个要注意,在开始画路径之前,要使用context.beginPath()来定义路径的开始,在结束路径时,要使用context.closePath()来进行路径的闭合。

个人理解

canvas就是工程师眼中的画板,我们使用js这支画笔,在指定的位置定好指定的路径,然后对它进行填充或描边。最后通过多个图形的组合排序来实现我们的需求。

(刚接触canvas,以上都是个人的粗浅认识,如果有什么错误,麻烦多多指出,后面有新的知识,会持续修改这篇文章的)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,185评论 2 32
  • 书中代码示例效果展示:Core HTML5 Canvas Examples 基础知识 canvas元素 canva...
    szu_bee阅读 7,938评论 2 28
  • --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益...
    韩七夏阅读 7,763评论 2 10
  • 熟悉html5的程序员们肯定都知道 元素,该元素是用来在页面中规定一块区域,然后由js在该区域内绘制图形。canv...
    米几V阅读 6,584评论 1 5
  • 当清晨第一缕阳光还没有洒进洪家的大庄园时,洪家大小姐就已经早早的开始了晨练。洪家作为一个全城乃至在世界上都数一数二...
    藏在阴影里的男人阅读 1,612评论 0 0