지금부터
쉽게 풀어보는 수학 공식의 이해[1.행렬 회전편]를 시작하겠다.
많은 좌표계가 있지만 우리는
화면
z
+
/
/_____ +x
/ |
|
눈 +
y
이 좌표계를 기준으로 한다. (컴퓨터에서 카메라 좌표계로 사용하기에 적합하기 때문)
기본적으로 축은
|1 0 0|
|0 1 0|
|0 0 1|
으로 정의한다.
회전은 축의 양의 방향에서 봤을 때
시계방향으로 회전하는 것을 기준으로 한다
x축을 기준으로 회전시킬 때
x축을 기준으로 a만큼 회전 된다고 할 때
직각삼각형의 길이비 공식을 적용햐여
y축의 y좌표는 cos(a)
y축의 z좌표는 -sin(a)
z축의 y좌표는 sin(a)
z축의 z좌표는 cos(a)
이것을 행렬식으로 표현하면
|1 0 0|
|0 cos(a) -sin(a)|
|0 sin(a) cos(a)|
가 된다.
다른 축들을 기준으로 한 회전도 이러한 방식으로 구할 수 있다. (뒤쪽에 코드로 한번 나오니 글로 써있는게 불편하다면 일단 읽고 가보자)
왜 여기서 행렬곱을 하면 변형되지 않고 회전되는지 궁금하다면,
절댓값은 항상 유지된다는 성질을 기억하자
n차원 벡터v의 절댓값은
sqrt(sigma{k=1,n}(v{k} ^ 2))이다.
이 절댓값을 선의 길이라고 보자.
그러면 두개의 선이 이루는 절댓값은 부피이며,
그 값은 절댓값1 * 절댓값2 라는 공식이 매우 쉽게 유도된다.
행렬의 경우, 행, 열마다 다른 절댓값을 적용해야 한다.
행과 열의 길이가 n으로 같은 행렬 A가 있다고 하자
이 행렬의 각 요소 A{i,j}의 절댓값은
sqrt(sigma{k=1,n}(A{i,k} ^ 2)) * sqrt(sigma{k=1,n}(A{k,j} ^ 2))가 된다
이때 우리가 만든 행렬의 절댓값은
1 1 1
1 1 1
1 1 1
로 모든 요소의 절댓값이 "비례적"으로 보존된다.
모두에게 인정받고 사랑받는 python의 검증된 라이브러리인 numpy를 사용하여 이를 증명해보자
무슨 값을 넣든지 간에
[[1 1 1]
[1 1 1]
[1 1 1]]
이 나올 것이다.
이상으로 쉽게 풀어보는 수학 공식의 이해[1.행렬 회전편]를 마친다. - C751AE30C787(응기잇) -
절대값이 왜 유지되는건가요?
고거 설명하면 어려워짐 ㅇㅅㅇ
ㅇㅅㅇ
개추
테트리스 회전할 때 써먹는 공식
유용하네 개추
저 뉴빈데 이차원배열 회전할때 써요?ㅠㅠ
그럼 행렬을 어떻게 구현하게 ㅇㅅㅇ?