231Echarts - 3D 柱状图(星云)

简介: 231Echarts - 3D 柱状图(星云)
效果图

源代码
var img = new Image();
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
img.onload = function () {
    var width = canvas.width = img.width;
    var height = canvas.height = img.height;
    ctx.drawImage(img, 0, 0, width, height);
    var imgData = ctx.getImageData(0, 0, width, height);
    var data = new Float32Array(imgData.data.length / 4 * 3);
    var off = 0;
    for (var i = 0; i < imgData.data.length / 4; i++) {
        var r = imgData.data[i * 4];
        var g = imgData.data[i * 4 + 1];
        var b = imgData.data[i * 4 + 2];
        var lum = (0.2125 * r + 0.7154 * g + 0.0721 * b);
        lum = (lum - 125) / 4 + 50;
        data[off++] = i % width;
        data[off++] = height - Math.floor(i / width);
        data[off++] = lum;
    }
    myChart.setOption(option = {
        tooltip: {},
        backgroundColor: '#fff',
        xAxis3D: {
            type: 'value'
        },
        yAxis3D: {
            type: 'value'
        },
        zAxis3D: {
            type: 'value',
            min: 0,
            max: 100
        },
        grid3D: {
            show: false,
            viewControl: {
                alpha: 70,
                beta: 0
            },
            postEffect: {
                enable: true,
                depthOfField: {
                    enable: true,
                    blurRadius: 4,
                    fstop: 10
                }
                // SSAO: {
                //     enable: true
                // }
            },
            boxDepth: 100,
            boxHeight: 20,
            environment: 'data-gl/asset/starfield.jpg',
            light: {
                main: {
                    shadow: true,
                    intensity: 2
                },
                ambientCubemap: {
                    texture: 'data-gl/asset/canyon.hdr',
                    exposure: 2,
                    diffuseIntensity: 0.2
                }
            }
        },
        series: [{
            type: 'bar3D',
            shading: 'lambert',
            barSize: 0.8,
            silent: true,
            itemStyle: {
                color: function (params) {
                    var i = params.dataIndex;
                    var r = imgData.data[i * 4] / 255;
                    var g = imgData.data[i * 4 + 1] / 255;
                    var b = imgData.data[i * 4 + 2] / 255;
                    var lum = (0.2125 * r + 0.7154 * g + 0.0721 * b);
                    r *= lum * 2;
                    g *= lum * 2;
                    b *= lum * 2;
                    return [r, g, b, 1];
                }
            },
            data: data
        }]
    });
}
img.src = 'data-gl/asset/sample.jpg';
目录
相关文章
|
2月前
echarts 柱状图/折线图x轴坐标间隔
echarts 柱状图/折线图x轴坐标间隔
62 0
|
8月前
|
JSON 前端开发 数据格式
【前端统计图】echarts实现简单柱状图
【前端统计图】echarts实现简单柱状图
68 0
|
8月前
ECharts 柱状图横轴(X轴)文字内容显示不全
ECharts 柱状图横轴(X轴)文字内容显示不全
183 0
|
5天前
【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图
【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图
15 0
|
12天前
|
数据可视化 JavaScript 前端开发
使用 ECharts 绘制3D饼图,立体效果华丽渲染!
使用 ECharts 绘制3D饼图,立体效果华丽渲染!
|
19天前
|
JavaScript Apache 容器
如何使用ECharts制作一个简单的柱状图
如何使用ECharts制作一个简单的柱状图
21 0
|
2月前
|
JSON 程序员 定位技术
使用echarts+echarts-gl绘制3d地图,实现地图轮播效果
记录一下大屏开发中使用到的echarts-gl 大屏的页面根据需求前前后后改了几个版本了,地图的样式也改了又改 这里记录一下,因为echarts属性用到的比较多也比较杂,防止以后需要用到忘记了
|
8月前
echarts设置柱状图柱状图粗细大小
echarts设置柱状图柱状图粗细大小
111 1
|
8月前
|
BI
echarts柱状图实现颜色渐变效果
echarts柱状图实现颜色渐变效果
94 1
|
2月前
设置echarts的grid、tooltip、柱状图渐变色、折线图渐变色
设置echarts的grid、tooltip、柱状图渐变色、折线图渐变色

热门文章

最新文章