Rocket

描述:当前是关于Echarts图表中的 示例。
 
            
// github: github.com/jackshawn/pics-by-echarts

var rocket = 'path://M-244.396,44.399c0,0,0.47-2.931-2.427-6.512c2.819-8.221,3.21-15.709,3.21-15.709s5.795,1.383,5.795,7.325C-237.818,39.679-244.396,44.399-244.396,44.399z M-260.371,40.827c0,0-3.881-12.946-3.881-18.319c0-2.416,0.262-4.566,0.669-6.517h17.684c0.411,1.952,0.675,4.104,0.675,6.519c0,5.291-3.87,18.317-3.87,18.317H-260.371z M-254.745,18.951c-1.99,0-3.603,1.676-3.603,3.744c0,2.068,1.612,3.744,3.603,3.744c1.988,0,3.602-1.676,3.602-3.744S-252.757,18.951-254.745,18.951z M-255.521,2.228v-5.098h1.402v4.969c1.603,1.213,5.941,5.069,7.901,12.5h-17.05C-261.373,7.373-257.245,3.558-255.521,2.228zM-265.07,44.399c0,0-6.577-4.721-6.577-14.896c0-5.942,5.794-7.325,5.794-7.325s0.393,7.488,3.211,15.708C-265.539,41.469-265.07,44.399-265.07,44.399z M-252.36,45.15l-1.176-1.22L-254.789,48l-1.487-4.069l-1.019,2.116l-1.488-3.826h8.067L-252.36,45.15z';
var option = {
    grid: {
        left: 0,
        right: 0,
        bottom: 0,
        top: 0
    },
    radar: {
        center: ['12.5%', '47.5%'],
        radius: '20%',
        indicator: [
            {max: 10, name: 'N'},
            {max: 10},
            {max: 10},
            {max: 10, name: 'W'},
            {max: 10},
            {max: 10},
            {max: 10, name: 'S'},
            {max: 10},
            {max: 10},
            {max: 10, name: 'E'},
            {max: 10},
            {max: 10}
        ],
        name: {
            textStyle: {
                color:'#333'
            }
        }
    },
    series: [
        //rocket
        {
            type: 'graph',
            data: [
                {
                    x: 0,
                    y: 100,
                    symbol: rocket,
                    symbolSize: [180, 300],
                    symbolOffset: [50, -0],
                    symbolRotate: -45
                },
                {
                    x: 0,
                    y: 0,
                    symbolSize: 0
                },
                {
                    x: 100,
                    y: 100,
                    symbolSize: 0
                }
            ],
            bottom: 0,
            top: 0
        },
        //cloud
        {
            type: 'graph',
            data: [
                {
                    x: 0,
                    y: 0,
                    symbolSize: 0
                },
                {
                    x: 100,
                    y: 100,
                    symbolSize: 0
                }
            ],
            itemStyle: {
                normal: {
                    shadowBlur: 50,
                    shadowColor: '#fff'
                }
            },
            bottom: 0,
            top: 0,
            right: 0,
            left: 0
        },
        //hidden pie
        {
            type: 'pie',
            radius: '10%',
            center: ['12.5%', '10%'],
            data: [
                {value: 1, name: 'rocket head'},
                {value: 1, name: 'rocket right wing'},
                {value: 1, name: 'rocket ass'},
                {value: 1, name: 'left wing'},
                {value: 1, name: 'rocket neck'}
            ],
            itemStyle: {
                normal: {
                    opacity: 0
                }
            }
        },
        //line
        {
            type: 'line',
            data: [4],
            itemStyle: {
                normal: {
                    opacity: 0
                }
            }
        },
        {
            type: 'line',
            data: []
        },
        {
            type: 'line',
            data: []
        },
        {
            type: 'line',
            data: []
        },
        // bar
        {
            type: 'bar'
        },
        {
            type: 'bar'
        },
        {
            type: 'bar'
        },
        {
            type: 'bar'
        },
        //logo
        {
            type: 'pictorialBar',
            symbolPosition: 'end',
            data: [
                {
                    value: 0
                },
                {
                    value: 0
                },
                {
                    value: 3.9,
                    symbol: rocket,
                    symbolSize: [85, 110],
                    itemStyle: {
                        normal: {
                            color: '#666'
                        }
                    },
                    symbolRotate: -10
                }
            ]
        },
        {
            type: 'radar',
            symbolSize: 5,
            data: [
                {
                    value: [3]
                }
            ],
            itemStyle: {
                normal: {
                    shadowBlur: 10
                }
            }
        },
        {
            type: 'gauge',
            center: ['10%', '72.5%'],
            radius: '20%',
            axisLine: {
                lineStyle: {
                    width: 5
                }
            },
            axisTick: {
                length: 5
            },
            splitLine: {
                length: 10,
                lineStyle: {
                    color: 'auto'
                }
            },
            detail: {
                textStyle: {
                    fontSize: 24
                }
            },
            pointer: {
                width: 5
            },
            data: [{value: 0}]
        },
        {
            type: 'gauge',
            center: ['20%', '74%'],
            startAngle: 120,
            radius: '12.5%',
            max: 10,
            axisLine: {
                lineStyle: {
                    width: 4
                }
            },
            axisLabel: {
                show: false
            },
            axisTick: {
                show: false,
                length: 4
            },
            splitLine: {
                length: 4
            },
            pointer: {
                width: 2
            },
            detail: {
                textStyle: {
                    fontSize: 16
                }
            },
            data: [{value: 0}]
        }
    ],
    xAxis: {
        data: new Array(20)
    },
    yAxis: {
        splitLine: {
            show: false
        }
    },
    silent: true,
    backgroundColor: 'rgba(52, 195, 231, 0.44)'
};
myChart.setOption(option);
var m = 1;
var before;
var t = function () {
    var position = Math.random() * 50 + 50;
    setTimeout(function () {
        option.series[0].data[0].symbolOffset[0]++;
        option.series[13].data[0].value = (95 + Math.random() * 5).toFixed(1);
        option.series[14].data[0].value = (9 + Math.random()).toFixed(1);
        myChart.setOption(option);
        setTimeout(function () {
            option.series[0].data[0].symbolOffset[0]--;
            option.series[0].data[0].symbolOffset[1]--;
            option.series[13].data[0].value = (95 + Math.random() * 5).toFixed(1);
            option.series[14].data[0].value = (9 + Math.random()).toFixed(1);
            myChart.setOption(option);
            setTimeout(function () {
                option.series[0].data[0].symbolOffset[1]++;
                myChart.setOption(option);
                if (m % 2 == 0) {
                    if (((m / 2) | 0) % 2 == 0) {
                        option.series[1].data[3].x = 100 - before;
                        option.series[1].data[3].y = 100;
                        option.series[1].data[3].symbolOffset = [-100, 100];
                        option.series[1].data[3].itemStyle.normal.opacity = 0.5;
                        
                        //radar
                        option.series[12].symbolSize = 3
                        option.series[12].itemStyle.normal.shadowBlur = 5
                        
                    } else {
                        option.series[1].data[2].x = 0;
                        option.series[1].data[2].y = before;
                        option.series[1].data[2].symbolOffset = [-100, 100];
                        option.series[1].data[2].itemStyle.normal.opacity = 0.5;
                        
                        //line
                        option.series[4].data = []
                        option.series[5].data = []
                        option.series[6].data = []
                        for (var i = 0; i < 5; i++) {
                            option.series[4].data.push(2.75 + Math.random() / 4)
                            option.series[5].data.push(2.75 + Math.random() / 4)
                            option.series[6].data.push(2.75 + Math.random() / 4)
                        }
                        
                        //radar
                        option.series[12].symbolSize = 5
                        option.series[12].itemStyle.normal.shadowBlur = 10
                    }
                } else {
                    if (((m / 2) | 0) % 2 == 0) {
                        option.series[1].data[2] = {
                            x: position,
                            y: 0,
                            symbolSize: [200, 150],
                            symbolRotate: -30,
                            itemStyle: {
                                normal: {
                                    color: '#fff',
                                    opacity: 0
                                }
                            }
                        }
                    } else {
                        option.series[1].data[3] = {
                            x: 100,
                            y: 100 - position,
                            symbolSize: [200, 150],
                            symbolRotate: -30,
                            itemStyle: {
                                normal: {
                                    color: '#fff',
                                    opacity: 0
                                }
                            }
                        }
                        //bar
                        option.series[7].data = [0]
                        option.series[8].data = []
                        option.series[9].data = []
                        option.series[10].data = []
                        for (var i = 0; i < 4; i++) {
                            option.series[7].data.push(Math.random() * .6)
                            option.series[8].data.push(Math.random() * .6)
                            option.series[9].data.push(Math.random() * .6)
                            option.series[10].data.push(Math.random() * .6)
                        }
                    }
                    before = position;
                }
                m++
                t();
            }, 50)
        }, 50)
    }, 100)
}
setTimeout(function () {
    //shot
    option.series[0].data[0].x = 50;
    option.series[0].data[0].y = 50;
    myChart.setOption(option);
    //shake
    t()
}, 1000)