将2d数组转换为1d数组以绘制线条

时间:2013-06-20 15:44:26

标签: c++ visual-studio-2010 directx directx-9

由于LPD3DXLINE只接受1D,我将2d数组转换为1d数组。因此,我可以在屏幕上保留绘制的线条并绘制另一条新线。

D3DXVECTOR2 lineVertices[newLine][currentLine]

for (int i=0; i < noOfNewLine; i++)
    line->Draw(lineVertices[i], 2, D3DCOLOR_XRGB(0, 0, 0));

如果我改为

D3DXVECTOR2 lineVertices[currentLine][newLine]

我该怎么做

lineVertices[i]

成功将其转换为1d数组?

1 个答案:

答案 0 :(得分:1)

为什么你需要在1d内转换2d? C \ C ++中的任何数组都作为1d存储在内存中。 只需将第一个元素的地址指定为指针

即可
p = &lineVectices[0][0];

其中p是指向数组类型的指针。 然后迭代p

for (int i=0; i<newLine*currentLine; i++){
// do stuff with p[i]
}