C#에서 행군하는 큐브를 구현하려고하는데 알고리즘을 이해하지 못하는 부분에 와서 구현 방법을 모르겠습니다.Marching Cubes (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
으로 설정하기 전에는 의미가 없습니다. 왜 포인터인지 이해하지 못합니다.
왜 삼각형 [ntriang]이 의미가 없습니까? 'ntriang'을 사용하여 '삼각형'이 가리키는 배열을 색인하기 만하면됩니다. 나머지 표현식은 ntriang-th 위치에서 구조체의 멤버 'p'에 무언가를 할당합니다. – pmr