2012-07-18 84 views
0

我想在C#中實現行進多維數據集,但是我已經到了一個我不瞭解算法的部分,我不知道如何實現它。行進多維數據集(C++到C#)

int Polygonise(GRIDCELL grid, double isolevel, TRIANGLE *triangles)

第三種說法我真的不明白。我知道這是一個指針,但後來在算法中,當你設置的三角形看起來好像triangles變量是TRIANGLE結構數組:

int ntriang = 0; 

for (int i=0; triTable[cubeindex,i]!=-1; i+=3) { 
    triangles[ntriang].p[i ] = vertlist[triTable[cubeindex,i ]]; 
    triangles[ntriang].p[i+1] = vertlist[triTable[cubeindex,i+1]]; 
    triangles[ntriang].p[i+2] = vertlist[triTable[cubeindex,i+2]]; 
    ntriang++; 
} 

通知的triangles[ntriang]。這沒有意義,因爲在我們設置trianglesTRIANGLE *triangles之前。我也不明白爲什麼它是一個指針。

+4

爲什麼'三角形[ntriang]'沒有意義?它只是使用'ntriang'來索引'triangles'指向的數組。表達式的其餘部分將一些東西賦給'ntriang-th'位置的struct成員'p'。 – pmr 2012-07-18 12:38:22

回答

2

Polygonize的調用者預計*triangles指向一個長度足以包含所有三角形的已分配數組。 c#中的等價物可以是TRIANGLE[]List<TRIANGLE>()

+0

如何使用帶List的指針? – 2012-07-18 13:31:00

+0

帶有一個你必須添加的列表,然後你可以使用[]運算符作爲數組。 – 2012-07-18 13:53:44

1

它看起來像這個函數採用體素/單元格的GRID並輸出三角形。這是一個指針,因爲你會得到一個三角形列表。