什么是以行为主序的二维数组?

yangtoude
  • 326

echarts-gl绘制曲面

用echarts-gl绘制曲面时,提供了一组二维数组,echarts报错提示要提供以行为主序的二维数组:

echarts-gl.js:51001 Uncaught (in promise) Error: Invalid data. data should be a row major 2d array.
    at ExtendedClass._getDataShape (echarts-gl.js:51001)
    at ExtendedClass.render (echarts-gl.js:50617)
    at Task.progress (echarts.js:23685)
    at doProgress (echarts.js:22678)
    at Task.taskProto.perform (echarts.js:22601)
    at echarts.js:26562
    at ExtendedClass.<anonymous> (echarts.js:20645)
    at Array.forEach (<anonymous>)
    at each$1 (echarts.js:524)
    at ExtendedClass.eachSeries (echarts.js:20643)

echarts-gl中的一个二维数组示例,用这个二维数组可以绘制出一个曲面来,我看了下这个二维数组,数组中每个元素(一维数组中的每个元素对应x、y、z坐标)中的第一个元素(x坐标)是按从小到大排列的。如果打乱这个顺序,就无法绘制出曲面来,但打乱y或z的顺序则没有影响,都可以绘制出曲面来。

data: [
    [-1,-1,0],[-0.5,-1,0],[0,-1,0],[0.5,-1,0],[1,-1,0],
    [-1,-0.5,0],[-0.5,-0.5,1],[0,-0.5,0],[0.5,-0.5,-1],[1,-0.5,0],
    [-1,0,0],[-0.5,0,0],[0,0,0],[0.5,0,0],[1,0,0],
    [-1,0.5,0],[-0.5,0.5,-1],[0,0.5,0],[0.5,0.5,1],[1,0.5,0],
    [-1,1,0],[-0.5,1,0],[0,1,0],[0.5,1,0],[1,1,0]
]

绘制的曲面如下:

clipboard.png

请问什么是以行为主序的二维数组?

回复
阅读 3.6k
1 个回答
✓ 已被采纳

假设你有一个二维数组 a3,三行两列,想象成一个矩阵
如果按照 row major(从左到右,即从行选取元素,然后从上到下换行),程序读取数据的顺序是 a[0][0], a[0][1], a[1][0], a[1][1], a[2][0], a[2][1],按照行号顺序来

翻看它的源码,只要 x比前面的小,就会报错。
clipboard.png

宣传栏