【问题标题】:Problem turning 2D array into 1D how to convert matrix of vertexes into matrix of xy values将二维数组转换为一维的问题如何将顶点矩阵转换为 xy 值矩阵
【发布时间】:2021-10-12 12:08:58
【问题描述】:

我想将这样的二维数组 [ [x, y], [a, b], [z, e] ] 变成 [x, y, a, b, z, e] 我用索引和 for 循环尝试了多种方法,但大多数都不起作用,而做的那一种是非常错误和粗略的,我该怎么做我 c++ 我是初学者,我正在尝试学习矩阵

【问题讨论】:

  • 您希望它与标准数组或 std::vector<> 一起使用吗?
  • 我不能使用 std::vector 或数组我在现代 opengl 中使用这个数组,它只支持 float[] 数组
  • 这不是问题,因为std::vector<> 有一个返回float* 数组的.data() 方法。
  • 它似乎不适用于我在现代 opengl 中的代码
  • 这里是代码 //创建一个顶点缓冲对象 VertexBuffer VBuff;顶点数组顶点数组; //创建一个顶点数组向量 vertices = { -1, 0, 1, 0 }; //将顶点数组写入我们的顶点缓冲区 VBuff.write(vertices.data(), sizeof(vertices.data())); shader.setColor(1,0,0,1); // 绑定缓冲区,... VBuff.bind();

标签: c++ arrays matrix multidimensional-array multi-dimensional-scaling


【解决方案1】:

最好的方法是创建一个新数组。 使用下面的代码,也很简单明了

  int arr[rows*columns];
    int a=0;
    int array[rows][columns]={assign values}; 
    for(int i=0;i<rows;i++){
        for(int j=0;j<columns;j++){
           arr[a]=array[i][j];  
           a++;
        }
    }

【讨论】:

    最近更新 更多