用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,大家可以在评论区留言相互学习交流


相关文章
|
5月前
|
API C++ 计算机视觉
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
|
5月前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
|
12月前
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
209 0
|
C++ Python
C++ VTK鼠标网格表面绘制曲线
C++ VTK鼠标网格表面绘制曲线
377 0
C++ VTK鼠标网格表面绘制曲线
|
前端开发
canvas正交坐标系旋转--监听滚轮
canvas正交坐标系旋转--监听滚轮
100 0
|
机器学习/深度学习 传感器 算法
基于Matlab绘制偶极子和矩形孔径天线方向图
基于Matlab绘制偶极子和矩形孔径天线方向图
|
前端开发 数据可视化 图形学
canvas中模拟光照效果——绿的你发慌
前言 可视化开发中,尤其是在2d视图下,看到一些非常的好玩的特效,五颜六色的光。好的本篇文章就带你去用canvas去模拟你自己想要的效果。涉及到一些数学知识,不过的都是基础的。我还是争取讲的更加通俗易懂一点。
canvas中模拟光照效果——绿的你发慌
双开门案例(使用平移效果)
双开门案例(使用平移效果)
85 0
|
缓存 算法 前端开发
canvas绘制图像轮廓效果
canvas绘制图像轮廓效果
canvas绘制图像轮廓效果