Day09-HTML5 CSS3

一.canvas

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .can{
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <!-- 画布具有默认宽高 -->
    <canvas class="can" width="800" height="800">
        您当前浏览器不支持canvas 请升级浏览器版本吧
    </canvas>

</body>

</html>

二.绘制直线

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector('#can');
        // 2.获取画笔
        var myCan = canvas.getContext('2d');
        console.log(myCan);

        // 3.定义一个起点 (绘制一个起点)
        // moveTo(x,y); 用来绘制起点
        myCan.moveTo(200, 200);

        // 4.绘制直线
        // lineTo(x,y); 直线的起点就是上一步设置 moveTo的x,y坐标
        myCan.lineTo(600, 600);

        // 5.填充图形
        myCan.stroke();

    </script>

</body>

</html>

三.画笔的颜色和粗细

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');
        console.log(myCan);

        // 3.定义一个起点(绘制一个起点)
        // moveTo(x,y) 用来绘制起点
        myCan.moveTo(200, 200);

        // 4.绘制直线
        // lineTo(x,y) 直线的起点就是上一步设置 moveTo的xy坐标
        myCan.lineTo(600, 600);


        // 画笔的颜色和粗细要在填充之前修改
        myCan.strokeStyle = "orange";
        myCan.lineWidth = 10;

        myCan.moveTo(600,600);
        myCan.lineTo(600, 200);

        // 5.填充图形
        myCan.stroke();

    </script>

</body>

</html>

四.绘制矩形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');
        console.log(myCan);

        // 路径的开始
        // 开始路径
        myCan.beginPath();

        // 3.定义一个起点(绘制一个起点)
        // moveTo(x,y) 用来绘制起点
        myCan.moveTo(200, 200);

        // 4.绘制直线
        // lineTo(x,y) 直线的起点就是上一步设置 moveTo的xy坐标
        myCan.lineTo(200, 400);
        myCan.lineTo(600, 400);
        myCan.lineTo(600, 200);


        // 画笔的颜色和粗细要在填充之前修改
        myCan.strokeStyle = "orange";
        myCan.lineWidth = 10;


        // 闭合路径
        myCan.closePath();

        // 5.填充图形
        myCan.stroke();

    </script>

</body>

</html>

五.绘制三角形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');
        console.log(myCan);

        // 路径的开始
        // 开始路径
        myCan.beginPath();

        // 3.定义一个起点(绘制一个起点)
        // moveTo(x,y) 用来绘制起点
        myCan.moveTo(400, 200);

        // 4.绘制直线
        // lineTo(x,y) 直线的起点就是上一步设置 moveTo的xy坐标
        myCan.lineTo(200,500);
        myCan.lineTo(600,500);


        // 画笔的颜色和粗细要在填充之前修改
        myCan.strokeStyle = "orange";
        myCan.lineWidth = 10;


        // 闭合路径
        myCan.closePath();

        // 5.填充图形
        myCan.stroke();

    </script>

</body>

</html>

六.快速创建矩形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');

        // myCan.rect(x, y, width, height);
        myCan.rect(200, 200, 400, 100);
        myCan.strokeStyle = "pink";
        myCan.lineWidth = 10;
        // 填充
        myCan.stroke();

    </script>

</body>

</html>

七.快速创建描边矩形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');

        // myCan.strokeRect(x, y, width, height);
        myCan.strokeRect(200, 200, 400, 200);

    </script>

</body>

</html>

八.快速创建填充矩形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');
        console.log(myCan);

        // myCan.fillRect(x, y, width, height);
        // fillStyle 用来修改 填充颜色
        myCan.fillStyle = "pink";
        myCan.fillRect(200, 200, 400, 200);

    </script>

</body>

</html>

九.填充三角形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');
        console.log(myCan);

        // 路径的开始
        // 开始路径
        myCan.beginPath();

        // 3.定义一个起点(绘制一个起点)
        // moveTo(x,y) 用来绘制起点
        myCan.moveTo(400, 200);

        // 4.绘制直线
        // lineTo(x,y) 直线的起点就是上一步设置 moveTo的xy坐标
        myCan.lineTo(200,500);
        myCan.lineTo(600,500);


        // 画笔的颜色和粗细要在填充之前修改
        myCan.strokeStyle = "orange";
        myCan.lineWidth = 10;
        // 填充图形
        myCan.fillStyle = "purple"
        myCan.fill();

        // 闭合路径
        myCan.closePath();

        // 5.填充图形
        myCan.stroke();

    </script>

</body>

</html>

十.清除矩形

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="1200" height="900">您当前浏览器不支持canvas 请升级浏览器版本吧</canvas>

    <script>

        // console.log(can);
        // 1.获取元素
        var canvas = document.querySelector("#can");
        // 2.获取画笔
        var myCan = canvas.getContext('2d');

        myCan.rect(200, 300, 400, 400);
        // 画笔颜色
        myCan.strokeStyle = "pink";
        // 画笔粗细
        myCan.lineWidth = 10;

        // 填充颜色
        myCan.fillStyle = "yellow";
        // 填充方法
        myCan.fill();

        // cxt.clearRect(x, y, width, hegiht);
        myCan.clearRect(260, 380, 100, 100);
        myCan.stroke();

    </script>

</body>

</html>

十一.圆弧

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800"></canvas>

    <script>

        var can = document.querySelector('#can');
        // 获取画笔
        var mycan = can.getContext('2d');
        // 弧度和角度的转换公式: rad = deg*Math.PI/180; deg=rad*180/Math.PI
        // 语法:cxt.arc(x, y, r, startAngle, endAngle, counterclockwise);

        // 开始路径
        mycan.beginPath();
        mycan.moveTo(400, 400);
        var strat = 0 * Math.PI / 180;
        var end = 90 * Math.PI / 180;
        // mycan.arc(400, 400, 200, strat, end, false);
        mycan.arc(400, 400, 200, strat, end, true);
        // 结束路径
        mycan.closePath();
        mycan.stroke();

    </script>

</body>

</html>

十二.绘制饼图

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="800" height="800"></canvas>

    <script>

        var mycan = can.getContext("2d");
        console.log(mycan);


        // 通过数据进行绘制饼图
        var data = [{
            "value": .2,
            "color": "red",
            "title": "应届生"
        }, {
            "value": .3,
            "color": "blue",
            "title": "社会招生"
        }, {
            "value": .4,
            "color": "green",
            "title": "老学员推荐"
        }, {
            "value": .1,
            "color": "pink",
            "title": "公开课"
        }];

        // arc(x,y,r,s,e,t)
        // for
        // 开始弧度
        var stratA = 0;
        // 结束弧度
        var endA = 0;
        // 圆心
        var x = 400;
        var y = 400;
        // 半径
        var r = 200;

        // 弧度和角度的转换公式: rad = deg*Math.PI/180; deg=rad*180/Math.PI
        for (var i = 0; i < data.length; i++) {
            // 每一分数据的 占用的 弧度
            // (data[i].value * 360) * Math.PI / 180
            // 1.开始路径
            mycan.beginPath();
            // 2.绘制起点
            mycan.moveTo(400, 400);
            // 3.根据 value 计算 每条数据所占用的弧度
            var rads = (data[i].value * 360) * Math.PI / 180;
            // 72
            console.log(rads);
            // 4.求出一个结束弧度
            // 72     0     72
            // 180       72   108
            endA = endA + rads;
            //                   72     72
            mycan.arc(x, y, r, stratA, endA);
            mycan.closePath();
            mycan.stroke();
            mycan.fillStyle = data[i].color;
            mycan.fill();
            // 每一份数据的开始弧度 就是 上一份数据的结束弧度
            stratA = endA;
        }
        // 扩展
        mycan.fillStyle = "black";
        mycan.font = "700 30px serif";
        mycan.fillText(data[0].title, 450, 500);
        mycan.fillText(data[1].title, 300, 500);
        mycan.fillText(data[2].title, 300, 300);
        mycan.fillText(data[3].title, 500, 360);

    </script>

</body>

</html>

十三.绘制文本

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #can {
            border: 1px solid red;
        }
    </style>
</head>

<body>

    <canvas id="can" width="600" height="600"></canvas>
    <!-- <img src="../img/1.png" alt=""> -->

    <script>

        //  cxt.drawImage(img,x,y,width,height);
        var mycan = can.getContext("2d");

        // 创建元素
        var img = document.createElement("img");
        img.src = "../img/1.png";

        // onload 等待内容 资源文件加载完毕之后执行
        img.onload = function () {
            // mycan.drawImage(img, 0, 0, 600, 600);

            // 9参数可以对 图片进行裁剪
            // sx,sy            裁剪图片的位置 
            // swidth,sheight   裁剪大小
            // x,y,             裁剪之后显示在画布内的方位
            // width,height     裁剪之后显示在画布内的大小
            // cxt.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
            // 先裁剪 然后规定现在画布内的大小
            mycan.drawImage(img, 330, 240, 100, 100, 0, 0, 600, 600)
            mycan.fillStyle = "orange";
            mycan.font = "20px 华文彩云"
            mycan.fillText("", 60, 140);
        }

    </script>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值