zoukankan      html  css  js  c++  java
  • canvas绘制坐标轴

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    body {
    text-align: center;
    }

    canvas {
    background: #ddd;
    }
    </style>
    </head>
    <body>
    <canvas width="600" height="400" style="border-color: #eee"></canvas>
    </body>
    <script>
    /*
    默认的线条宽度1px
    默认的颜色是黑色
    产生的原因是
    */
    //获取元素
    var myCanvas = document.querySelector('canvas');
    //获取上下文
    var ctx = myCanvas.getContext('2d');
    var grid = 10;
    var canvasHeight = ctx.canvas.height;//计算canvas画布的高度
    var canvasWidth = ctx.canvas.width;//获取画布的宽度
    var xLineNumber = Math.floor(canvasWidth / grid);//计算需要几条横线
    var yLineNumber = Math.floor(canvasHeight / grid);//计算需要几条竖线
    ctx.strokeStyle = "#eee";
    for (var i = 0; i < xLineNumber; i++) {//循环来画线
    ctx.beginPath();
    ctx.moveTo(i * grid, 0);
    ctx.lineTo(i * grid, canvasHeight);
    ctx.stroke();
    }
    for (var i = 0; i < yLineNumber; i++) {
    ctx.beginPath();
    ctx.moveTo(0, i * grid);
    ctx.lineTo(canvasWidth, i * grid);
    ctx.stroke();
    }
    //绘制坐标轴

    //1.绘制Y轴
    var spance = 20;
    var arrowSize = 10;
    ctx.beginPath();
    ctx.moveTo(spance, spance);
    ctx.lineTo(spance, canvasHeight - spance);
    ctx.strokeStyle = "black";
    ctx.stroke();
    //2.绘制X轴
    ctx.beginPath();
    ctx.moveTo(spance, canvasHeight - spance);
    ctx.lineTo(canvasWidth - spance, canvasHeight - spance);
    ctx.stroke();
    //3.绘制X轴的箭头
    ctx.moveTo(canvasWidth - spance, canvasHeight - spance - 5);
    ctx.lineTo(canvasWidth - spance, canvasHeight - spance + 5);
    ctx.lineTo(canvasWidth - spance + 10, canvasHeight - spance);
    ctx.closePath();
    ctx.fill();
    //绘制Y轴箭头
    ctx.moveTo(spance - 5, spance);
    ctx.lineTo(spance + 5, spance);
    ctx.lineTo(spance, spance - 10);
    ctx.closePath();
    ctx.fill();

    ctx.moveTo(20,350);//移端点
    ctx.lineTo(200,20);
    // context.setLineDash([10,15]);//(1参)10虚线长度;(2)15这根线和下个线的距离;
    ctx.stroke();
    </script>
    </html>
    下面绘制一条起点是(50,50),终点是(150,150)的直线线条
    context.moveTo(50, 50);
    context.lineTo(150, 150);
    context.stroke();
  • 相关阅读:
    jQuery为啥要提供一个load()方法?
    某大学程序设计竞赛
    【Error】JavaWeb: 严重: Failed to initialize end point associated with ProtocolHandler [&quot;http-bio-8080&quot;]
    form表单和表格
    AJAX入门---DOM操作HTML
    设计模式学习01—单例模式
    Spring MVC 数据验证——validate注解方式
    HOW TO: How to import UUID function into Postgre 9.3
    STM8S 串口应用 UART2 STM8S105
    微信公众平台应用开发框架sophia设计不足(1)
  • 原文地址:https://www.cnblogs.com/liulinjie/p/12752926.html
Copyright © 2011-2022 走看看