【发布时间】:2014-04-09 13:12:43
【问题描述】:
我正在尝试在 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]。这没有意义,因为在我们将triangles 设置为TRIANGLE *triangles 之前。我也不明白为什么它是一个指针。
【问题讨论】:
-
为什么
triangles[ntriang]没有意义?它只是使用ntriang来索引triangles指向的数组。表达式的其余部分在ntriang-th位置为结构的成员p赋值。
标签: c++ pointers marching-cubes