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


相关文章
|
7月前
|
API C++ 计算机视觉
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
|
7月前
|
前端开发 API
canvas详解03-绘制图像和视频
canvas详解03-绘制图像和视频
88 1
|
7月前
|
存储 前端开发
canvas详解05-变形
canvas详解05-变形
80 2
|
7月前
|
计算机视觉
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
91 0
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
247 0
|
前端开发
canvas如何绘制标签,在知识的海洋狗刨(下)
下面总结了一些canvas绘制标签的心得体会,希望能够对你有所帮助。
|
前端开发
canvas如何绘制标签,在知识的海洋狗刨(上)
下面总结了一些canvas绘制标签的心得体会,希望能够对你有所帮助。
|
缓存 算法 前端开发
canvas绘制图像轮廓效果
canvas绘制图像轮廓效果
canvas绘制图像轮廓效果
【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )(三)
【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )(三)
335 0
【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )(三)
【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )(二)
【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )(二)
410 0
【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )(二)