본문 바로가기
컴퓨터/프로그래밍

행렬 회전 알고리즘

by Begi 2020. 5. 14.
반응형

행렬 회전 중 시계방향으로 90도 회전은 다음 그림과 같다.

 

위와 같이 시계방향으로 90도 회전하는 알고리즘은 다음과 같이 구현할 수 있다. 여기서 mat은 원래 행렬이고 mat1은 회전된 행렬이다.

 for(i=0; i<3; i++)
 {
   for(j=0; j<3; j++)
    {
      mat1[j][3-i-1] = mat[i][j];
    }
 }

행렬 크기가 커지면 위 코드에서 3 부분을 바꾸면 된다.

 

반시계방향으로 90도 회전하는 알고리즘은 다음과 같이 구현할 수 있다.

 for(i=0; i<3; i++)
 {
   for(j=0; j<3; j++)
    {
      mat1[3-j-1][i] = mat[i][j];
    }
 }

 

시계방향으로 180도 회전하는 알고리즘은 위의 90도 회전 알고리즘을 2번 실행하던지 아니면 다음과 같이 구현할 수 있다.

 for(i=0; i<3; i++)
 {
   for(j=0; j<3; j++)
    {
      mat1[3-i-1][3-j-1] = mat[i][j];
    }
 }

 

반응형

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

atan과 atan2의 차이  (0) 2020.06.01
BASIC 언어 - 간단 소개  (0) 2020.05.16
Objective-C  (0) 2020.05.07
폴리글랏 프로그래밍  (0) 2020.05.07
중첩함수  (0) 2020.05.07

댓글