• 技术文章 >web前端 >js教程

    JavaScript+html5 canvas绘制小人的效果介绍

    不言不言2018-07-03 11:08:57原创1363
    这篇文章主要介绍了JavaScript+html5 canvas绘制的小人效果,涉及JavaScript结合html5 canvas图形绘制及颜色随机填充的技巧,需要的朋友可以参考下

    本文实例讲述了JavaScript+html5 canvas绘制的小人效果。分享给大家供大家参考,具体如下:

    运行效果截图如下:

    index.html代码如下:

    <!DOCTYPE html>
    <html>
     <head>
      <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
      <title>canvas中的缩放</title>
      <style type="text/css">
       #canvas {
        background:black; margin-top:100px; margin-left:200px;
       }
      </style>
     </head>
     <body>
      <canvas id="canvas" width="500px" height="500px" ></canvas>
     </body>
     <script type="text/javascript" src="canvas.js"></script>
     <script type="text/javascript">
      cache = {};
      var offsetX = 50,
       offsetY = 20;
      cache.context = dyl.createContext('canvas');
      dyl.rect(dyl.createColor(), 60 + offsetX, 0 + offsetY, 185, 100);
      dyl.rect(dyl.createColor(), 100 + offsetX, 100 + offsetY, 100, 50);
      dyl.rect(dyl.createColor(), 20 + offsetX, 150 + offsetY, 260, 200);
      dyl.rect(dyl.createColor(), 80 + offsetX, 350 + offsetY, 30, 110);
      dyl.rect(dyl.createColor(), 190 + offsetX, 350 + offsetY, 30, 110);
      dyl.circle(dyl.createColor(), 115 + offsetX, 55, 20);
      dyl.circle(dyl.createColor(), 190 + offsetX, 55, 20);
     </script>
    </html>

    canvas.js代码如下:

    (function() {
      var dyl = {cache: {}};
      dyl.setContext = function(context) {
        dyl.cache._context = context;
        return context;
      }
      dyl.getDom = function(id) {
        return document.getElementById(id);
      }
      dyl._getContext = function() {
        return dyl.cache._context;
      }
      dyl.save = function() {
        var context = dyl._getContext();
        context ? context.save() : void(0);
      }
      dyl.restore = function() {
        var context = dyl._getContext();
        context ? context.restore() : void(0);
      }
      dyl.createContext = function(canvasID) {
        var canvas = this.getDom(canvasID);
        if(!canvas) {
          return null;
        }
        return dyl.setContext(canvas.getContext("2d"));
      }
      dyl.createColor = function() {
        var color = "rgb(";
        color += Math.round(Math.random()*255);
        color += ",";
        color += Math.round(Math.random()*255);
        color += ",";
        color += Math.round(Math.random()*255);
        color += ")";
        return color;
      };
      dyl.addImg = function(img, x, y) {
        var context = dyl._getContext();
        if(!img || !context) {
          return;
        }
        if(typeof img === "string") {
          var oImg = new Image();
          oImg.src = img;
          oImg.onload = function() {
            context.drawImage(oImg, x, y);
          }
          return;
        } 
        context.drawImage(img, x, y);
      };
      dyl.rect = function(color, x, y, width, height) {
        var context = dyl._getContext();
        if(!context) {
          return;
        }
        context.fillStyle = color;
        context.fillRect(x, y, width, height);
      };
      dyl.circle = function(color, x, y, r) {
        var context = dyl._getContext();
        context.save();
        context.fillStyle = color;
        context.beginPath();
        context.arc(x, y, r, 0, 2*Math.PI);
        context.fill();
        context.stroke();
      };
      dyl.scale = function(x, y) {
        var context = dyl._getContext();
        if(!context) {
          return;
        }
        x = x ? x : 1;
        y = y ? y : 1;
        context.scale(x, y);
      };
      if(!window.dyl) {
        window.dyl = dyl;
      }
    })();

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    原生JS+Canvas实现五子棋游戏的代码

    使用纯JS代码判断字符串中有多少汉字的方法

    以上就是JavaScript+html5 canvas绘制小人的效果介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:JavaScript html5 canvas 绘制
    上一篇:使用纯JS代码判断字符串中有多少汉字的方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊Node中怎么用async函数• 浅析Angular中怎么结合使用FormArray和模态框• react 怎么实现按需加载• react怎么实现滚动条• 一文聊聊node文件的读写操作
    1/1

    PHP中文网