0

我正在尝试在 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

2 回答 2

2

Polygonizeexpect的调用者*triangles指向一个足够长的已分配数组以包含所有三角形。c# 中的等价物可以是 aTRIANGLE[]或 aList<TRIANGLE>()

于 2012-07-18T12:39:59.820 回答
1

看起来这个函数采用体素/单元格的网格并输出三角形。它是一个指针,因为您将获得一个三角形列表。

于 2012-07-18T12:40:51.523 回答