行进多维数据集(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