게임 화면 속 캐릭터를 돌리는 법 — 순서가 중요한 곱셈
게임에서 캐릭터가 제자리에서 돌고, 카메라가 따라 움직이고, 화면이 확대된다. 이 모든 움직임은 화면 위의 점 (x, y) 를 다른 점으로 옮기는 일이고, 그 옮김을 적는 가장 간단한 도구가 행렬이다. 원점을 중심으로 θ 만큼 도는 변환은 점을 (x cos θ − y sin θ, x sin θ + y cos θ) 로 보내는데, 이것이 바로 성분이 cos θ, −sin θ, sin θ, cos θ 인 2 × 2 행렬을 곱한 결과다. 확대는 대각선에 배율이 들어간 행렬, 좌우 뒤집기는 부호만 바꾼 행렬이다.
여러 동작을 잇달아 시킬 때 행렬의 진가가 나온다. 돌리고 확대하고 옮기는 세 동작은 행렬 세 개의 곱 하나로 합쳐지고, 캐릭터를 이루는 수만 개의 점에는 그 합쳐진 행렬 하나만 곱하면 된다. 그래픽 카드가 초당 수천만 번 하는 일의 대부분이 이 곱셈이다. 사진 앱의 색 보정 필터도 (R, G, B) 세 값에 3 × 3 행렬을 곱하는 방식으로 만든다.
여기서 AB ≠ BA 가 눈으로 보인다. 캐릭터를 원점 둘레로 90° 돌린 뒤 오른쪽으로 5칸 옮기는 것과, 오른쪽으로 5칸 옮긴 뒤 90° 돌리는 것은 전혀 다른 자리에 도착한다. 뒤쪽은 캐릭터가 원점을 중심으로 큰 호를 그리며 날아가 버린다. 순서를 바꾸면 결과가 달라지는 이 성질은 행렬의 결함이 아니라, 현실의 동작이 원래 순서를 탄다는 사실이 식에 남은 것이다. 그래픽 프로그램에서 변환 행렬을 곱하는 순서를 늘 신경 써야 하는 이유가 여기 있다.