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.

  • 相关阅读:
    IO模式和IO多路复用详解
    消息队列RabbitMQ、缓存数据库Redis
    rest framework认证组件和django自带csrf组件区别详解
    django进阶之缓存
    关于CSRF攻击详解
    Linux学习常用命令大全
    .NET 开源工作流: Slickflow流程引擎基础介绍(四) -- 多数据库支持实现
    .NET 开源工作流: Slickflow流程引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
    .NET 开源工作流: Slickflow流程引擎基础介绍(二) -- 引擎组件和业务系统的集成
    .NET开源敏捷开发框架: SlickOne介绍(一) -- 基于Dapper, Mvc和WebAPI 的快速开发框架
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/7235520.html
Copyright © 2011-2022 走看看