canvas绘制虚线图表

简介: canvas绘制虚线图表

最近有读者加我微信咨询这个问题,如下图所示:

微信图片_20220425140109.png


要实现的效果如下:


微信图片_20220425140112.png


其实难度不大,但是考虑一些人员对于canvas不熟悉,还是简单的介绍下。


其实该图表,就是一个圆圈外面在套一个圆弧的效果, 主要的难点在于不知道怎么绘制圆圈的虚线效果。其实canvas本身已经支持了虚线的绘制,就是一个api调用的事情,api是setLineDash。


示例代码如下:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Line Dash</title>
    <style>
        canvas {
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    <canvas id="canvas" width="600" height="400"></canvas>
    <script>
        var ctx = document.getElementById( 'canvas' ).getContext( '2d' );
        var w = canvas.width,
                h = canvas.height;
        var x = w / 2,
                y = h / 2;
        ctx.save();
        ctx.strokeStyle = "gray";
        ctx.setLineDash([5,5]);
        ctx.lineWidth = 10;
        ctx.beginPath();
        ctx.arc(200,200,75,0,Math.PI *2);
        ctx.stroke();
        ctx.restore();
        ctx.save();
        ctx.beginPath();
        ctx.lineWidth = 12;
        ctx.lineCap = "round";
        ctx.joinCap = "round";
        ctx.strokeStyle = "red";
        ctx.arc(200,200,75,0,-Math.PI/2,Math.PI /2 );
        ctx.stroke();
        ctx.restore();
    </script>
</body>
</html>


绘制效果如下图所示:


微信图片_20220425140117.png


ps:后面那个读者也给我看了下css的实现, css实现这种东西还是太麻烦,一般不建

议。


微信图片_20220425140120.png

相关文章
|
3天前
|
前端开发
|
3天前
|
Python
绘制矩形
【5月更文挑战第11天】绘制矩形。
9 1
|
3天前
|
缓存 前端开发 JavaScript
canvas详解01-绘制基本图形
canvas详解01-绘制基本图形
55 2
|
前端开发
canvas绘制五角星
canvas绘制五角星
148 0
|
C# 图形学
C#之深入理解GDI+绘制圆弧及圆角矩形等比缩放的绘制
GDI+中对于圆弧的绘制,是以给定的长方形(Rectangle`结构)为边界绘制的椭圆的一部分形成的圆弧。绘制的圆弧的中心为长方形内切椭圆的圆心(如果是正方形,则正方形的...
437 0
C#之深入理解GDI+绘制圆弧及圆角矩形等比缩放的绘制
C#编程-132:DrawRectangle绘制矩形
C#编程-132:DrawRectangle绘制矩形
145 0
C#编程-132:DrawRectangle绘制矩形
|
前端开发 数据可视化
canvas绘制折线路径动画
canvas绘制折线路径动画
canvas绘制折线路径动画
|
前端开发 API
Canvas绘制圆点线段
Canvas绘制圆点线段
Canvas绘制圆点线段