echarts-gl icon indicating copy to clipboard operation
echarts-gl copied to clipboard

3dBar图,如果设置grid3D.viewControl.projection为 'orthographic',在数据刷新时,缩放失效

Open judecumt opened this issue 4 years ago • 0 comments

如题,在数据刷新时,缩放会回退到默认大小。grid3D.viewControl.projection为perspective时,无此问题。 将如下代码放入https://echarts.apache.org/examples/zh/editor.html?c=bar3d-simplex-noise&gl=1&theme=dark&version=5.2.2 中,可复现。

$.getScript(
  'https://cdn.jsdelivr.net/npm/[email protected]/simplex-noise.js'
).done(function () {
  var flag = false;
  var noise = new SimplexNoise(Math.random);
  function generateData(theta, min, max) {
    var data = [];
    for (var i = 0; i <= 50; i++) {
      for (var j = 0; j <= 100; j++) {
        var value = noise.noise2D(i / 20, j / 20);
        valMax = Math.max(valMax, value);
        valMin = Math.min(valMin, value);
        data.push([i, j, value * 2 + 4]);
      }
    }
    return data;
  }
  var valMin = Infinity;
  var valMax = -Infinity;

  setInterval(() => {
    noise = new SimplexNoise(Math.random);
    var data = generateData(2, -5, 5);
    console.log(valMin, valMax);
    if (!flag) {
      flag = true;
      myChart.setOption(
        (option = {
          animation: false,
          visualMap: {
            show: true,
            min: 0,
            max: 80,
            inRange: {
              color: [
                '#313695',
                '#4575b4',
                '#74add1',
                '#abd9e9',
                '#e0f3f8',
                '#ffffbf',
                '#fee090',
                '#fdae61',
                '#f46d43',
                '#d73027',
                '#a50026'
              ]
            }
          },
          xAxis3D: {
            type: 'value',
            name: 'Period'
          },
          yAxis3D: {
            type: 'value',
            name: 'Phase'
          },
          zAxis3D: {
            type: 'value',
            max: 10,
            min: 0,
            nameTextStyle: {
              align: 'right',
              verticalAlign: 'top'
            }
          },
          grid3D: {
            left: 10,
            viewControl: {
              //autoRotate: true,
              projection: 'orthographic'
            }
          },
          series: [
            {
              type: 'bar3D',
              data: data,
              shading: 'lambert',
              label: {
                formatter: function (param) {
                  return param.value[2].toFixed(1);
                }
              }
            }
          ]
        })
      );
    } else {
      myChart.setOption({ series: [{ data: data }] });
    }
  }, 1000);
});

judecumt avatar Nov 23 '21 15:11 judecumt