zoukankan      html  css  js  c++  java
  • Echarts 实现显示六边形

    我不是专业的前端开发,项目中需要用到,但是有点不符合需求,不过既然做了个效果,那就发出来,给有用的人用吧。

    效果如下图所示:

    代码如下:

    function GetPolygon(side) {
      //参数说明:side是六边形边长
      let polygonP = [];//六边形六个顶点的列表,代表六边形
      //let side = Math.sqrt(area / (3 * sqrt_3 / 2));//六边形边长
      let midwid=Math.sqrt(3)/2*side //六边形高度的一半
      let midx=side/2 //横向坐标 第一个点与原点的距离
      //left top
      let x = 0;//顶点x坐标 调整显示位置
      let y = 0;//顶点y坐标  调整显示位置
      //
      polygonP.push([x+midx,y+midwid*2]);
      polygonP.push([x+0,y+midwid]);
      polygonP.push([x+midx,y+0]);
      polygonP.push([x+midx+side,y+0]);
      polygonP.push([x+midx*2+side,y+midwid]);
      polygonP.push([x+midx+side,y+midwid*2]);
      polygonP.push([x+midx,y+midwid*2]);
    
      return polygonP;
    };
    option = {
      tooltip: {
        trigger: 'axis'
      },
     legend: {
        data: ['bar', 'error']
      },
      dataZoom: [
        {
          type: 'slider',
          filterMode: 'none'
        },
        {
          type: 'inside',
          filterMode: 'none'
        }
      ],
      xAxis: {},
      yAxis: {},
      series: [
        
        {
          type: 'custom',
          renderItem: function (params, api) {
            if (params.context.rendered) {
              return;
            }
            params.context.rendered = true;
             let points = [];
             let mydata=GetPolygon(100)
            for (let i = 0; i < mydata.length; i++) {
              points.push(api.coord(mydata[i]));
            }
            let color = api.visual('color');
            return {
              type: 'polygon',
              transition: ['shape'],
              shape: {
                points:points
              },
              style: api.style({
                fill: color,
                stroke: echarts.color.lift(color, 0.1)
              })
            };
          },
          clip: true,
          data: GetPolygon(100)
        },
        
      ]
    };
    

      

     

  • 相关阅读:
    POJ 2175 Evacuation Plan 费用流 负圈定理
    POJ 2983 Is the Information Reliable? 差分约束
    codeforces 420B Online Meeting
    POJ 3181 Dollar Dayz DP
    POJ Ant Counting DP
    POJ 1742 Coins DP 01背包
    中国儒学史
    产品思维30讲
    Java多线程编程核心技术
    编写高质量代码:改善Java程序的151个建议
  • 原文地址:https://www.cnblogs.com/veviDP/p/15465731.html
Copyright © 2011-2022 走看看