2013-06-20 78 views
0

由于LPD3DXLINE只接受1D,我将2d数组转换为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] 

将其转换成一维数组成功?

回答

1

为什么需要在1d中转换2d? C \ C++中的任何数组都以1d的形式存储在内存中。 恰在第一次elemnt的ADRESS分配给指针

p = &lineVectices[0][0]; 

其中p是指向你的数组类型。 ,然后跨过p

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

错误错误C2440遍历: '初始化':无法从 'D3DXVECTOR2(*)[2]' 转换 'D3DXVECTOR2 *' – zzz

+0

@optimisez对不起,编辑我的答案,它应该是'p =&lineVectices [0] [0]' –