반응형
행렬 회전 중 시계방향으로 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 |
댓글