cansvas基础入门(一)

2017-01-18  本文已影响91人  仅有的依赖gx

canvas,是一个H5的新标签,通过js来实现绘图的神奇功能。
<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

那么我们怎么来使用canvas标签呢?

<canvas width="800" height="600" id="context"></canvas>

注意,在这里我直接在行间设置了宽高,是因为若不设定宽高,浏览器会默认设置canvas大小为宽300、高100像素,而且不能使用css来设置(会被拉伸),建议直接写于canvas标签内部,或者是直接用js脚本中来设置。如下:

<script>
var context = document.getElementById("myCanvas");
context .width=200;
context .height=200;
</script>

首先,获取canvas的绘图环境,这是一个封装了很多绘图功能的对象。

 var  gd =canvas.getContext("2d");

来举个栗子

<script>
            var oC=document.querySelector('#mycontext');
            var  gd =oC.getContext('2d'); //获取该canvas的2D绘图环境对象
            gd .moveTo(10,10); //定义绘画开始的位置
            gd .lineTo(150,50); //画一条直线,结束点坐标是x=150,y=50
            gd .strokeStyle='red'; //设定描边颜色为红色,要写在.stroke()方法前面
            gd .lineWidth=20; //设定描边粗细为20,不要写px
            context.stroke(); //描边,即绘制边框
    </script>

我们使用了几个绘图方法:
1.moveTo(x坐标 , y坐标) 可以理解为定位画笔在画布上的位置
2.lineTo(x坐标 , y坐标) 顾名思义,就是画一条直线到某个点,此方法只做路径运动,并没有视觉上的效果。
3.stroke() 描边方法 让运动路径从视觉上显现 用 画笔描出来
4.strokeStyle 设定颜色的方法 可以直接用颜色名称,例如"red" "green",或者用十六进制颜色"#fff",还有rgb(0-255,0-255,0-255), rgba(0-255,0-255,0-255,透明度)。

栗子2 用canvas写出两个不一样颜色的线 :

<script>
    var oC=document.querySelector('#mycontext');
    var gd =oC.getContext('2d'); 
    gd .moveTo(0,0);   
    gd .lineTo(150,50);  
    gd .lineTo(20,100); 
    gd .strokeStyle = "blue";   
    gd .stroke();  

    gd .beginPath();
    gd .moveTo(90,90); 
    gd .lineTo(80,150);  
    gd .strokeStyle = "red";  
    gd .closePath(); 
    gd .stroke();  
</script>

关于路径beginPath和closePath
1、系统默认在绘制第一个路径的开始点为beginPath
*2、如果画完前面的路径没有重新指定beginPath,那么画第其他路径的时候会将前面最近指定的beginPath后的全部路径重新绘制
ps:记住每次画路径都在前后加gd .beginPath() 和gd .closePath()

当然canvas也可以绘制出各种图形
栗子3 绘制矩形

<script>
        window.onload= function () {
            var oC=document.querySelector('#c1');
            var gd=oC.getContext('2d');

            gd.strokeStyle='red';//边的颜色
            gd.lineWidth=20;    //边的宽度
            gd.fillStyle='green'; // 整个涂满的颜色
            gd.fillRect(100,100,200,300); //满矩形(x矩形起点横坐标,y矩形起点纵坐标,矩形宽度,矩形高度)
            gd.strokeRect(100,100,200,300); //矩形
      }

绘制矩形有两个小方法:

1 context.fillRect(x,y,width,height) 所谓的满矩形就是填充一个矩形

2 strokeRect(x,y,width,height) 绘制矩形(不填色)。笔触的默认颜色是黑色。
相反 清除矩形区域即为

context.fillRect(x,y,width,height) strokeRect(x,y,width,height)

canvas更多有趣的东西,我们下次再讲~~~

上一篇 下一篇

猜你喜欢

热点阅读