본문 바로가기
IT 기술/Direct3D

Direct3D 행렬의 전치행렬, 단위행렬, 역행렬_6일차

by 썬's 2023. 1. 17.

오늘은 Direct3D에서 행렬 중 전치행렬과 단위행렬 그리고 역행렬에 대해 알아보겠습니다.

이전 주차에는 행렬의 개념과 연산에 대해 배워봤는데요

제 블로그의 본 페이지를 보시는 분들 중 행렬에 대해 잘 모르시는 분들은

이전 주차 수업을 먼저 듣고 오시기를 추천드립니다.

※제 수업은 이전주차에서 배운 개념을 재차 설명하지 않습니다※

※제가 설명이 조금 길어 급하신 분들은 최하단에 요약 부분을 보시면 됩니다※


1. 행렬의 전치행렬

Direct3D의 행렬은 행과 열로 이루어진 형태를 말합니다. 그럼 전치행렬은 무엇일까요?

A라는 행렬이 있고, 이 행렬이 m x n 형태일 때, 행렬 A를 전치행렬화 시키면  m x n 행렬이 n x m 행렬이 됩니다.

즉, 전치행렬은 주어진 행렬의 행과 열을 맞바꾼 것을 말합니다. 

행렬 M의 전치행렬은 MT로 표기합니다. 행렬을 전치행렬화 시키면 윗첨차 T를 붙여주시면 됩니다.

하단 그림을 보시면 전치행렬을 이해하시기 쉬우실 것입니다.

행렬 A, B, C의 전치행렬은 AT, BT, CT입니다. 제가 노트로 작성해 윗첨자 사용을 못한 점 양해 부탁드립니다.

전치행렬


2. 행렬의 단위행렬

Direct3D에서 단위행렬이란 정방행렬 형태를 띄고 주대각 성분이 모두 1이며 나머지 성분은 0인 행렬을 말합니다.

여기서 하나씩 뜯어보면 정방행렬은 2x2, 3x3과 같이 정사각형 형태의 행렬을 말합니다.

그리고 주대각 성분이란 행렬이 있으면 좌상에서 우하로의 대각선에 있는 성분을 말합니다.

이를 그림으로 보면 다음과 같습니다.

 

하단 그림에 행렬 A, B, C는 모두 단위행렬입니다. 이는 다음과 같은 조건에 부합하기 때문입니다.

  • 세 행렬 모두 정방행렬 형태
  • 세 행렬 모두 주대각 성분이 1이고 나머지 성분은 모두 0

단위행렬은 특별한 성질은 가집니다. 바로 곱셈의 교환법칙이 성립합니다.

예를 들어 행렬 A가 있다고 할 때 이 행렬의 단위행렬인 M을 곱하면 그 교환법칙 결과도 동일한 결과가 나옵니다.

이를 하단 그림을 보시면 다음과 같습니다.

단위행렬
단위행렬 교환법칙


3. 역행렬

Direct3D에서 역행렬이란 두 행렬이 있을 때 이 행렬끼리 곱한 결과가 단위행렬이면 역행렬이라 합니다.

역행렬이 되기 위한 조건은 다음과 같습니다.

  • 역행렬은 정방행렬(정사각)형태여야 합니다.
  • 행렬 A의 역행렬을 표기할 때는 A-1로 표기합니다.
  • 모든 정방행렬이 역행렬을 띄는건 아닙니다.
  • 한 행렬을 역행렬하고, 기존의 행렬과 구한 역행렬을 곱하면 단위행렬이 나옵니다.

하단 그림1의 역행렬 공식과 그림2는 역행렬을 구하는 예시가 나와있습니다.

자 공식을 하나씩 뜯어보면 역행렬을 구하기 위해서는 먼저 정방행렬의 대각선끼리 곱한 결과를 빼고 이를 1로 나눕니다.

그리고 1단계 결과를 일답 킵해두시고 기존의 정방행렬을 주대각 성분끼리는 자리만 바꿔주시고 반대 대각선 성분끼리는 자리는 그대로 두시고 부호를 바꿔주시면 됩니다.

이제 킵한 곱한 결과와 부호를 바꾼 행렬을 곱해주시면 역행렬을 구할 수 있습니다.

역행렬 공식
역행렬 예시


4. 요약

  1. 전치행렬은 행과 열을 맞바꾼 것을 말합니다. 전치행렬의 표기는 윗첨자 T를 사용합니다.
  2. 단위행렬은 정방행렬 형태를 띠는 주대각 성분이 1이고 나머지 성분은 모두 0인 행렬을 말합니다. 하나의 행렬과 단위행렬의 곱셈은 교환법칙이 가능합니다.
  3. 역행렬은 두 행렬의 곱이 단위행렬인 것을 역행렬이라 합니다. 역행렬은 정방행렬이어야 하며 표기는 윗첨자 -1을 사용합니다.

오늘은 Direct3D에서의 행렬의 일종인 전치행렬, 단위행렬, 역행렬에 대해 알아 봤습니다.

그럼 다음 시간에는 벡터에 이어 XNA Math 라이브러리에 사용되는 행렬의 함수를 알아보겠습니다.

긴 글 읽으시느라 너무 고생 많으셨습니다~~

댓글