2012-04-07 4 views
0

질문 : 셀 인덱스 (빨간색)가 주어지면 셀 인덱스를 둘러싼 배열 인덱스 (검정)를 계산합니다.N-Dimensional Grid Vertices 계산

bool CalculateCellVerticesFromIndex(size_t index, size_t* vertices) 
{ 
    size_t gridSize[2] = {6, 5}; 
    return true; // if the index was valid 
    return false; // if the index was invalid 
} 

알려진 크기 (m X의 n 개의 X ...)의 N 차원 격자 셀을 둘러싸고있는 정점을 계산한다.

예의 도면 :

6 x 5 Grid Typo fixed

말해 상기 도면에서 int vertices[4] = {0, 0, 0, 0}

, CalculateCellVerticesFromIndex (12, 정점); 정점을 {14, 15, 20, 21}로 채워야합니다.

+0

무엇이 질문입니까? – twain249

+1

정수 나누기 및 나머지 (모듈로) 작업을 읽어야 할 필요가 있습니다. – MBo

+0

숙제가 아닙니다. 그것은 내 일을위한 것입니다. – Ryan

답변

1
Width = 6 
Row = Index div (Width - 1) 
if Row > 5 - 2 then OutOfGrid 
Column = Index mod (Width - 1) 
LeftBottom = Row * Width + Column 
LeftTop = LeftBottom + Width 
RightBottom and RightTop - elaborate 
+0

이 코드는 어디에서 좋아 하나 3D 그리드 또는 4D 그리드 인 경우 어떻게됩니까? – Ryan

+0

정수 나누기와 동일한 원칙을 활용합니다. 예를 들어, 3D에서 레이어 수를 얻으려면 인덱스를 두 차원의 곱으로 나눌 필요가 있습니다. – MBo