2011-09-30 2 views
4

크기 n x 2의 사각형 격자를 나타내는 크기가 n 2 인 배열이 있습니다.그리드로 배열, 어떻게 대각선으로 이동합니까?

직각으로 대각선으로 이동할 수있는 오른쪽 상단의 가장 정사각형에있는 모든 정사각형 (0에서 (n^2) -1)까지 가져오고 싶습니다.

나는 이미 왼쪽 상단 사각형을 얻으려면 현재 사각형 x를 사용하고 상단 왼쪽 사각형은 x % (n + 1)을 사용한다는 것을 알아 냈습니다.

사람이 비슷한 오른쪽 상단 가장 비슷한 방법을 알고 있습니까? 감사!

+1

대각선으로 45도 각도에서만 의미가 있습니까? 또는 축을 따라 움직이는 것을 의미합니까? 귀하의 방정식은 나에게 매우 일관된 결과를 제공하지 않습니다. – xthexder

+0

이 방법으로 사각형에 번호를 매기십니까? 2 차원 배열과 좌표계를 사용하면 IMO가 더 쉬울 것입니다. 예를 들어,'(0,0)'은 좌상단,'(n-1, n-1)'은 오른쪽 아래입니다. – NullUserException

+0

이 질문에 답변하기에 충분한 정보를 제공하지 않습니다. 배열은 array [0] = 0,0, array [1] = 0,1 또는 array [1] = 1,0처럼 정렬되어 있습니까? 좌표계 0,0이 왼쪽 하단 또는 왼쪽 상단입니까? – Clint

답변

1

달성하려는 목표를 모두 이해했다면 두 점을 직선으로 연결하고 행 수식을 사용하여 통과하는 셀의 좌표를 계산하면됩니다. 이것을 Bresenham's line drawing algorithm에 사용할 수 있습니다.

관련 문제