如果文章有不对之处,还请大神们多多指点
    canvas也是html中的一个元素,可以给这个元素添加一些html属性,属性width默认为300px,heigth默认为150px;
    canvas是h5中新增的众多元素中的一个,直译过来叫做画布,可以用来通过h5绘制一些图形效果;
    刚开始的时候只是知道是用来做一些图形效果的,但是后来了解到canvas的强大
    可以制作游戏,图标制作,banner广告,模拟器,字体设计,制作图形编辑器等等老多了,不过千里之行始于足下,还是先看看基本的一些方法和属性吧!


    想要用画布第一步:需要先创建一个canvas画布
              第二步:定义画布的大小,并且给画布指定一个对应的id
              第三步:在javascript中获取canvas画布对象
              第四步:通过canvas对象的getContext()方法获取canvas绘图上下文对象


    完成这4步以后呢,就可以正式的绘制图像啦~~
    不过说了这么多肯定还是云里雾里,程序猿还是要用代码理解起来更快


    <canvas width="500" height="500" id="wandou">您的浏览器不支持canvas</canvas>
    这里有一个非常重要的点,也是时间久了容易忘记的点,就是设置canvas的宽高,一般写样式我们习惯了用css中写,很少用到行内样式

    但是canvas与其他的不同,想要设置宽高的时候是直接用行内样式来设置的,而不是用css、js等去对canvas进行设置,否则,画布会被拉伸,被拉伸的画布会导致用户无法看到全部的图形;html5新增标签canvas画布基础详解及实操案例(上)html5新增标签canvas画布基础详解及实操案例(上)html5新增标签canvas画布基础详解及实操案例(上)



    第一步、第二步完成了,现在就开始下面的了
    <script>
        var canvas=document.getElementById('wandou');
        //在js中拿到canvas这块画布,用到了DOM获取对象,除了可以用getElementById外,其他的getElementsByTagName等等其他的都可以,但是如果获取的是数组对象需要加上下标


        var ctx=canvas.getContext('2d');
        //getContext('2d')表示调用canvas的2d上下文,也就是想要绘制平面图形


        //画布的左上角为原点,width表示横向可用像素,height表示纵向可用像素
        //下面呢。我们就在canvas上划一条直线,大家都知道,如果想划一条直线的就,就需要两个点来确定直线的两端,在画布中也是一样,需要确认起始点,结束点,再描线,和平时用笔划画差不多。


        //canvas默认以像素为单位,在坐标中不需要写px
        ctx.moveTo(50,50);
        //设置起点,第一个点的位置50,50,也就是距离画布左上角(原点)x轴向偏移50px,y轴向下偏移50px


        ctx.lineTo(150,250);
        //设置终点,第二个点的位置150,250,,也就是距离画布左上角(原点)x轴向偏移150px,y轴向下偏移250px


        //大功即将搞成,临门一脚了
        ctx.stroke();
        //描线,看到这一步的朋友们是不是感觉跟生活中画图是一样的?先画出两个点,然后用铅笔一描线就哦了


        //怎么样是不是感觉还是很简单的?也就只有几步的事情哟,看完了,赶紧试试吧!!
    </script>

绘制完成的效果,给大家截了下图,为了方便看,我给canvas加了一个边框,可能图形简单了点,哺乳纲html5新增标签canvas画布基础详解及实操案例(上)

html5新增标签canvas画布基础详解及实操案例(上)


上面我们说到用canvas来划直线,有没有觉得很神奇,就和划画一样,如果您认为它只能划直线那就大错特错了,现在个让我们来画个三角形,这都是生活中最常见的平面图形了
    首先需要创建一个canvas
    <canvas width="500" height="500" id="wandou"></canvas>
    <script>
        var canvas=document.getElementsByTagName('canvas')[0];
        //这个上面说了哟,如果用getElementsByTagName需要用下标,如果是第一张画布就用[0]就可以了
        var ctx=canvas.getContext('2d');
        //三角形也是平面图形所以用2d就可以了
        ctx.moveTo(50,50);
        //起始点
        ctx.lineTo(450,50);
        //第一个终点

        ctx.lineTo(250,200);

        //第二个终点

        ctx.lineTo(50,50);
        //最后一个终点,因为三角形是闭合的,所以坐标和初始坐标一样
        ctx.stroke();
        //描边,三角形就可以了
        //这有个注意的点就是描边,不是写一个起始点一个终点,就描边一次,而是把所有的起始点,终点都定好以后,一次性描边
    </script>
好啦,既然三角形都会划了,什么正方形、矩形、菱形或者多边形就都可以划了,发挥想象画一个自己喜欢形状把,比如五角星?哈哈
html5新增标签canvas画布基础详解及实操案例(上)

当然除了在body中直接创建一个canvas标签(比较简单),也可以在js中创建一个canvas
    <script>
        //首先创建一个canvas标签
        var canvas=document.createElement('canvas');
        //把canvas标签插入到body中或者div中
        document.body.appendChild(canvas);
        canvas.id('wandou');
        //给canvas画布添加id属性
        canvas.width=500;
        canvas.height=500;
        //给画布设置宽高
        //这样就创建完成了,但是可能什么也看不见,可以给canvas用css设置border:1px solid #000,这样就能看见画布的大小了
    </script>


今天简单了解了下canvas,可以绘制基本图形了,后面会更深入的介绍canvas的属性及方法,做出更多更好玩的东东...

相关文章: