用canvas实现同心圆带坐标的雷达图

简介: 1.在项目中我们经常使用echarts来实现图表功能,但是最近项目中遇到一个同心圆加坐标的图表,大家都知道echarts中雷达图不能设置坐标轴,所以采用了canvas来绘画

1.在项目中我们经常使用echarts来实现图表功能,但是最近项目中遇到一个同心圆加坐标的图表,大家都知道echarts中雷达图不能设置坐标轴,所以采用了canvas来绘画

2.直接上效果图4b296fdc7c52f9960cf391c299479f28.png


3.上代码


<template>
    <div>
        <canvas id="myCanvas" width="480" height="480" style="background: black;">
            实现同心圆带坐标的雷达图
        </canvas>
    </div>
</template>


<script>
export default {
    name: 'BugHomeView',
    data () {
        return {
        };
    },
    mounted () {
        this.getCanvas();
    },
    methods: {
        // canvas
        getCanvas () {
            let cav = document.getElementById("myCanvas");
            let ctx = cav.getContext("2d"); // 获取画笔
            // 画同心圆
            let w = 480;
            let h = 480;
            ctx.strokeStyle = "red"; // 线条颜色
            ctx.lineWidth = 1; // 线条宽度
            for (let r = 60; r <= 180; r += 60) {
                ctx.beginPath();
                ctx.arc(w / 2, h / 2, r, 0, 2 * Math.PI, true);
                ctx.stroke();
            }
            // canvas默认原点在画布的左上角 而且x轴向右,y轴向下
            // 改变原点
            ctx.translate(240, 240);
            ctx.scale(1, -1);
            // x轴
            ctx.beginPath();
            ctx.moveTo(-210, 0);
            ctx.lineTo(210, 0);
            ctx.stroke();
            // y轴
            ctx.beginPath();
            ctx.moveTo(0, -210);
            ctx.lineTo(0, 210);
            ctx.stroke();
            // x轴小三角
            ctx.beginPath();
            ctx.moveTo(210, -5);
            ctx.lineTo(210, 5);
            ctx.lineTo(220, 0);
            ctx.lineTo(210, -5);
            ctx.fiillStyle = "red";
            ctx.fill();
            ctx.stroke();
            // y轴小三角
            ctx.beginPath();
            ctx.moveTo(-5, 210);
            ctx.lineTo(5, 210);
            ctx.lineTo(0, 220);
            ctx.lineTo(-5, 210);
            ctx.fiillStyle = "red";
            ctx.fill();
            ctx.stroke();
        }
    },
};
</script>


4.后续会更新canvas的方法以及一些项目中遇到的bug,大家可以在评论区留言相互学习交流


相关文章
|
8月前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
|
8月前
|
移动开发 前端开发 JavaScript
html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
239 0
html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
|
8月前
|
前端开发 API
canvas详解03-绘制图像和视频
canvas详解03-绘制图像和视频
100 1
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
306 0
|
存储 前端开发
canvas自定义绘制顺序解决遮挡问题
canvas自定义绘制顺序解决遮挡问题
272 0
|
C语言
旋转的沙漏-[ Qt绘制旋转图像]
旋转的沙漏-[ Qt绘制旋转图像]
154 0
|
前端开发
canvas正交坐标系旋转--监听滚轮
canvas正交坐标系旋转--监听滚轮
119 0
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
141 0
五、OpenCV绘制线、矩形、圆等基本几何形状
|
前端开发 JavaScript 数据可视化
用Canvas实现简单画图(线、三角形、矩形、圆)
👋因为在B站看到一个小demo是基于canvas写的,非常喜欢,然后上掘金大数据又给我推了 《Canvas 从入门到劝朋友放弃(图解版)》,就像上手一下canvas,本来不想写笔记的,因为《Canvas 从入门到劝朋友放弃(图解版)》自己看了一下挺全的,但本着输入要有输出,所以就有了这篇文章
254 0
|
前端开发 数据可视化
Canvas——坐标系和矩阵的理解
前言 最近一直在寻找可视化文章发现没有合适的,恰好有个粉丝问了坐标系就和大家讲一下, 文字不多,内容比较简单,看完应该就能理解canvas的坐标系和getTransform 的 6 个参数什么意思哈, 后面还有一篇「Rbush」正在奋笔疾书✍️中,关于空间中如何快速搜索🔍百万或者是数十万个点的,敬请期待哈! 坐标系 canvas中的坐标是从左上角开始的,x轴沿着水平方向(按像素)向右延伸,y轴沿垂直方向向下延伸。左上角坐标为x=0,y=0的点称作原点。在默认坐标系中,每一个点的坐标都是直接映射到一个CSS像素上。 但是如果图像的每次绘制都参考一个固定点将缺少灵活性,于是在canvas中引
Canvas——坐标系和矩阵的理解

热门文章

最新文章

下一篇
开通oss服务