zoukankan      html  css  js  c++  java
  • 绘图

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Canvas</title>
        <style>
          body {
            margin: 0;
            overflow: hidden;
            background: #ccc;
          }
          .toolbar {
            width: 150px;
            height: 75px;
            background: #ccc;
            padding: 5px;
          }
          input[type="color"], button {
            width: 90%;
            margin: 0 auto;
            display: block;
          }
          input[type="range"] {
            width: 70%;
          }
           span {
             position: relative;
             bottom: 5px;
           }
        </style>
      </head>
      <body>
        <div class="toolbar">
          <input type="color" aria-label="select pen color">
          <input type="range" min="2" max="50" value="30" aria-label="select pen size"><span class="output">30</span>
          <button>Clear canvas</button>
        </div>
    
        <canvas class="myCanvas">
          <p>Add suitable fallback here.</p>
        </canvas>
    
        <script>
          var canvas = document.querySelector('.myCanvas');
          var width = canvas.width = window.innerWidth;
          var height = canvas.height = window.innerHeight-85;
          var ctx = canvas.getContext('2d');
          ctx.fillStyle = 'rgb(0,0,0)';
          ctx.fillRect(0,0,width,height);
          var colorPicker = document.querySelector('input[type="color"]');
          var sizePicker = document.querySelector('input[type="range"]');
          var output = document.querySelector('.output');
          var clearBtn = document.querySelector('button');
          // covert degrees to radians
          function degToRad(degrees) {
            return degrees * Math.PI / 180;
          };
          // update sizepicker output value
          sizePicker.oninput = function() {
            output.textContent = sizePicker.value;
          }
          // store mouse pointer coordinates, and whether the button is pressed
          var curX;
          var curY;
          var pressed = false;
          // update mouse pointer coordinates
          document.onmousemove = function(e) {
            curX = (window.Event) ? e.pageX : e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
            curY = (window.Event) ? e.pageY : e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
          }
          canvas.onmousedown = function() {
            pressed = true;
          };
          canvas.onmouseup = function() {
            pressed = false;
          }
          clearBtn.onclick = function() {
            ctx.fillStyle = 'rgb(0,0,0)';
            ctx.fillRect(0,0,width,height);
          }
          function draw() {
            if(pressed) {
              ctx.fillStyle = colorPicker.value;
              ctx.beginPath();
              ctx.arc(curX, curY-85, sizePicker.value, degToRad(0), degToRad(360), false);
              ctx.fill();
            }
            requestAnimationFrame(draw);
          }
          draw();
        </script>
      </body>
    </html>
  • 相关阅读:
    关于多个EditText的OnTextChange事件陷入死循环的处理
    #define #include #undef的其中一个用法(目的)
    串行移位锁存并行输出可级联器件74HC595
    STM32F10xx CAN BUS相关库文件"stm32f10x_can.c"内的库函数解析
    STM32 之 NVIC(中断向量、优先级) 简述
    STM32F103xx bxCAN(Basic Extended CAN) 滤波机制
    VS上利用C#实现一个简单的串口程序记录
    如何去各型MCU的官网上下载正确的数据手册
    Cotex-M3内核STM32F10XX系列时钟及其配置方法
    Stm32 debug停留在"BKPT 0xAB"或者"SWI 0xAB"的解决办法。
  • 原文地址:https://www.cnblogs.com/xiaobaizitaibai/p/10868043.html
Copyright © 2011-2022 走看看