美文网首页
canvas-圆的绘制

canvas-圆的绘制

作者: 我只会吃饭 | 来源:发表于2019-06-06 17:05 被阅读0次

    圆可以在数据可视化中作为饼状图基础图形,也是在canvas中必不可少的图形

    语法:
    ctx.arc(x, y, radius, startAngle, endAngle, Boolean)
    圆心坐标: (x, y)
    半径: radius
    起始角度: startAngle
    结束角度: endAngle
    是否逆时针旋转: false 代表顺时针旋转

    // 开始绘制路径
    ctx.beginPath();
    ctx.lineWidth = 2;
    ctx.strokeStyle = 'red';
    // 绘制圆的路径**
    ctx.arc(100, 100, 50, 0, Math.PI * 2, false);
    
    // 0°是从三点钟方向开始的
    
    // 描边路径
    ctx.stroke();
    
    
    image.png

    画圆就是如此简单~

    了解圆的方向

    ctx.beginPath();
    ctx.strokeStyle = 'blue';
    
    ctx.translate(250, 250);
    // 顺时针
    ctx.arc(0, 0, 100, 0, 2 * Math.PI / 4 * 3);
    // 是否闭合路径 : 闭合路径后起点与终点会连接
    // ctx.closePath();
    ctx.stroke();
    
    ctx.font = '16px bold';
    ctx.textAlign = 'center';
    ctx.textBaseline = 'middle';
    ctx.fillText('0°', 120, 0);
    ctx.fillText('90°', 0, 120);
    ctx.fillText('180°', -120, 0);
    ctx.fillText('270°', 0, -120);
    
    
    圆的方向.PNG closePath.gif

    栗子: 再来个圆~

    步骤:

    1. 先画中心点的圆
    2. 再画起始点的圆
    3. 在画圆的路径
    4. 最后画上结束点的圆
    image.png
    var draw = document.getElementById('draw');
    // 2D上下文 : 可会知简单的2D图形,矩形 弧形 路径
    var ctx = draw.getContext('2d');
    
    // 重新初始化一下画布
    function initCtx() {
        // 清除画布
        ctx.clearRect(0, 0, 500, 500);
    
        ctx.strokeStyle = '#333';
        ctx.lineWidth = 1;
        // 通过for, 循环执行画线动作
        for (var i = 0; i <= 10; i++) {
            // 开始绘制路径
            ctx.beginPath();
    
            // (列)
            // 路径的起点 (下笔) 
            ctx.moveTo(i * 50, 0);
            // 路径的终点 (提笔)
            ctx.lineTo(i * 50, 500);
            // (行)
            // 路径的起点 (下笔) 
            ctx.moveTo(0, i * 50);
            // 路径的终点 (提笔)
            ctx.lineTo(500, i * 50);
    // 关闭路径
            ctx.closePath();
            // 描边路径
            ctx.stroke();
            
        }
    
    }
    
    // 初始化
    initCtx();
    
    // 开始画x轴,y轴
    ctx.beginPath();
    ctx.strokeStyle = 'orange';
    ctx.lineWidth = 4;
    ctx.moveTo(50, 250);
    ctx.lineTo(450, 250);
    ctx.fillText('X', 50, 240);
    
    ctx.moveTo(250, 50);
    ctx.lineTo(250, 450);
    ctx.fillText('Y', 250, 40);
    
    ctx.stroke();
    
    

    canvas-安卓机器人

    相关文章

      网友评论

          本文标题:canvas-圆的绘制

          本文链接:https://www.haomeiwen.com/subject/ruidxctx.html