码迷,mamicode.com
首页 > Web开发 > 详细

html5-canvas

时间:2015-07-30 17:12:11      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:html5   canvas   画布   

本文介绍了线段、圆、矩形、字体、多边形、图像的绘制以及图形的旋转。

技术分享

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <canvas id="canvas" width="1000" height="900" style="background: #F7F7F7">
        您的浏览器不支持canvas属性
    </canvas>

    <script>
        var canvas = document.getElementById('canvas');
        var ctx = canvas.getContext('2d'); //设置绘制环境

        //1、画一条线段
        ctx.beginPath(); //开始,开始路径,凡是路径图形必须先开始路径,画完结束路径
        ctx.lineWidth = 5; //设置画笔的宽度
        ctx.strokeStyle = "#00ff00"; //设置画笔的颜色
        ctx.moveTo(10 , 10); //设置线条开始坐标
        ctx.lineTo(200 , 30); //设置线条结束坐标
        ctx.stroke(); //绘制线条
        ctx.closePath(); //画完,封闭路径

        //2、画一个空心圆
        ctx.beginPath(); //开始,开始路径
        //重新设置画笔,若不重新设置,则使用最近一次的设置
        ctx.lineWidth = 3; //设置画笔的宽度
        ctx.strokeStyle = "yellow"; //设置画笔的颜色
        ctx.arc(100 , 100 , 20 , 0 , 360); //arc(x,y,r,start,stop)
        ctx.stroke();
        ctx.closePath(); //画完,封闭路径

        //3、画一个实心圆
        ctx.beginPath(); //开始,开始路径
        ctx.fillStyle = "rgb(255 , 0 , 0)"; //设置填充颜色
        ctx.arc(200 , 100 , 20 , 0 , 360);
        ctx.fill(); //填充内部
        ctx.stroke(); //画边线
        ctx.closePath(); //画完,封闭路径

        //4、画空心矩形,非路径图形,不用开始和结束路径,但是建议加上
        //1)、方法一:
        ctx.beginPath();
        ctx.rect(10 , 150 , 50 , 30);  //(x , y , width , height)
        ctx.stroke();
        ctx.closePath();
        //2)、方法二:(建议用这种)
        ctx.strokeRect(100 , 150 , 50 , 30); //(x , y , width , height)

        //5、画实心矩形
        //1)、方法一:
        ctx.beginPath();
        ctx.rect(200 , 150 , 50 , 30);
        ctx.fill();
        ctx.closePath();
        //2)、方法二:(建议用这种)
        ctx.fillRect(300 , 150 , 50 , 30);

        //6、画实心字
        ctx.font = "40px 黑体";
        ctx.fillText("学习HTML5" , 10 , 250); ////(text , x , y)

        //7、画空心字
        ctx.font = "50px 微软雅黑";
        ctx.strokeStyle = "green";
        ctx.lineWidth = 1;
        ctx.strokeText("学习HTML5" , 250 , 250);

        //8、画图,把一张图片画到画布中,webkit内核的浏览器chrome和猎豹不支持
        var img = new Image();
        img.src = "beauty.jpg";
        ctx.drawImage(img , 10 , 280 , 540 , 360);//drawImage(img , x , y , imgWidth , imgHeight)

        //9、画空心三角形
        ctx.beginPath();
        ctx.moveTo(650 , 10);
        ctx.lineTo(650 , 50);
        ctx.lineTo(750,50);
        ctx.closePath(); //填充或画路径需先关闭路径再画
        ctx.stroke();

        //10、画实心三角形
        ctx.beginPath();
        ctx.moveTo(800 , 10);
        ctx.lineTo(800 , 50);
        ctx.lineTo(900,50);
        ctx.closePath();
        ctx.fill();

        //11、旋转
        ctx.save(); //设置旋转环境
        ctx.translate(10 ,10); //在异次元空间重置00点的位置,默认为画布的起点
        ctx.rotate(30 * Math.PI / 180); //设置旋转角度
        //旋转1中的线段
        ctx.lineWidth = 5;
        ctx.beginPath();
        ctx.moveTo(0 , 0); //注意00点的改变
        ctx.lineTo(50 , 100);
        ctx.stroke();
        ctx.closePath();
        ctx.restore(); //将旋转后的元素放回原画布
        //以上顺序不可颠倒,先设置00点再旋转角度,然后画图

        //旋转7中的图片
        ctx.save(); //设置旋转环境
        ctx.translate(10 ,280); //在异次元空间重置00点的位置,默认为画布的起点
        ctx.rotate(30 * Math.PI / 180); //设置旋转角度
        var img = new Image();
        img.src = "beauty.jpg";
        ctx.drawImage(img , 0 , 0 , 540 , 360);//注意00点的改变
        ctx.restore(); //将旋转后的元素放回原画布
    </script>
</body>
</html>


版权声明:本文为博主原创文章,未经博主允许不得转载。

html5-canvas

标签:html5   canvas   画布   

原文地址:http://blog.csdn.net/u013488580/article/details/47150231

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!