컴퓨터/프로그래밍
행렬 회전 알고리즘
Begi
2020. 5. 14. 23:54
반응형
행렬 회전 중 시계방향으로 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]; } } |
반응형