行进多维数据集(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]
。 这是没有道理的,因为在我们设置triangles
之前triangles
TRIANGLE *triangles
。 我也不明白为什么它是一个指针。
Polygonize
的调用者期望*triangles
指向一个足够长的分配数组以包含所有三角形。 在c#中的等价物可以是TRIANGLE[]
或List<TRIANGLE>()
它看起来像这个函数采用体素/单元格的GRID并输出三角形。 这是一个指针,因为你会得到一个三角形列表。
链接地址: http://www.djcxy.com/p/37169.html上一篇: Marching Cubes (C++ to C#)
下一篇: OpenCV: rotation/translation vector to OpenGL modelview matrix