由于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数组?
答案 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]
}