行进立方体(C++到C#)
Marching Cubes (C++ to 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
设置为TRIANGLE *triangles
之前。我也不明白为什么它是一个指针。
Polygonize
的调用方期望*triangles
指向一个足够长的已分配数组,以包含所有三角形。c#中的等价物可以是TRIANGLE[]
或List<TRIANGLE>()
看起来这个函数获取体素/细胞的GRID并输出三角形。它是一个指针,因为你会得到一个三角形列表。
相关文章:
- 如何使用 std::累积在 C++ 中计算总和立方体
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 如何使用采样器立方体作为数组
- OpenGL,为什么这不是一个立方体?
- 在具有 MPI 的超立方体中广播
- Opengl 和 c++ 绘制多个立方体
- C++没有标准功能的立方体根查找器
- 现代OpenGL:如何获得立方体的矢量位置
- 使用此网格函数的立方体的正确顶点和索引是什么
- 为什么在GLFW窗口中没有用这个代码在我的屏幕上绘制立方体
- OpenGL中立方体的位置
- 在犰狳立方体中添加一列 1 的有效方法
- 使用犰狳时无法加载犰狳立方体<uword>
- 将粒子投影到立方体的表面
- 犰狳:将立方体子视图(管)转换为矢量
- Armadillo是否支持布尔和8位型矩阵和立方体
- 有没有像犰狳中的稀疏立方体或某种使用稀疏矩阵作为立方体切片的方法?
- Qtopengl,为什么不能用不同的vbo画两个立方体
- OpenGL - 深度缓冲区在渲染半透明立方体时剪切掉不应该剪切的面
- 在 OpenGL 中呈现空白的线框立方体