zoukankan      html  css  js  c++  java
  • HTML5初学笔记

    今天学习了下HTML5的基本知识,用画笔在画布上画了几个东西,效果如图,相关代码如下,注意点总结在末尾;

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"/>
    </head>
    
    <body>
    <canvas id="can1" width="500px"  height="500px"  style="border:1px solid red">
    </canvas>
    <script type="text/javascript">
        //准备工作
        //得到画布
        var  canvas1=document.getElementById("can1");
        //得到上下文引用对象,你可以理解成画笔
        var cxt=canvas1.getContext("2d");
        
        //画出一个直线
        cxt.moveTo(30,10);//设置点的位置
        cxt.lineTo(30,90);//设置第二个点的位置
        cxt.stroke();//将这两个点连起来,画出直线
        
        /**
        *画出一个填充的三角形
        */
        cxt.beginPath();//开始新的起点
        cxt.moveTo(50,10);//设置点的位置
        cxt.lineTo(50,90);//设置第二个点的位置
        cxt.lineTo(80,90);//设置第三个点的位置
        cxt.closePath();//结束一个画的动作,闭合这三个点
        //cxt.fill();//实体填充    
        cxt.stroke();//空心填充
    
        //stroke划线,fill就是填充
        //画出一个矩形,四个点的含义,前两个是左上角的点,后面两个分别是宽和高
        //strokeRect(x,y,width,height)
        cxt.strokeRect(100,10,30,80);
        
        //画出一个填充的矩形,其颜色是蓝色
        cxt.fillStyle="#00ffff";
        cxt.fillRect(150,10,30,80);
        
        //画出一个圆形arc
        //六个参数arc(x,y,redius,startAngle,endAngle,counterclockwise)
        cxt.beginPath();//开始新的起点
        //true代表逆时针,false代表顺时针,其实这个无所谓的
        cxt.arc(220,30,20,0,360,false);
        cxt.closePath();//结束一个画的动作
        cxt.stroke();
        
          
        //画出一个填充的圆形arc
        //六个参数arc(x,y,redius,startAngle,endAngle,counterclockwise)
        cxt.fillStyle="#ff0000";//红色
        cxt.beginPath();//开始新的起点
        //true代表逆时针,false代表顺时针,其实这个无所谓的
        cxt.arc(280,30,20,0,360,false);
        cxt.closePath();//结束一个画的动作
        cxt.fill();
        
        
        //画一个图片出来,步骤如下
        //1、创建image对象
        var img1=new Image();
        //2、指定是哪个图片
        img1.src="1.png";
        //3、加载完毕后,再绘制图片
        img1.onload=function(){
            cxt.drawImage(img1,30,100,100,90);
        }

    //在画布上写字
        var text="牛魔王";
        cxt.fillStyle="#0000ff";
        cxt.font="30px  华文新魏";//如果输入的字体找不到,那么默认为宋体
        cxt.fillText(text,150,150);
    </script> </body> </html>

    先定义了一个画布,在script中获取画笔,用画笔画你想画的东西

     注意点:

    1、除了线和矩形不需要beginPath(),和closePath()其他都需要,不然会出一些莫名奇妙的问题

    2、stroke划线,fill就是填充

    3、颜色的设置要在beginPath()之前,否则不起作用;

    4、.画圆形的时候逆时针和顺时针有时候不太好用,计算设置了0度到360.顺时针和逆时针却不一样,可以正难则反试试;

    5、canvas是画布,getcontext()是画笔;

    end.

  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/7235520.html
Copyright © 2011-2022 走看看