DirectX 9

DirectX3D) 9. 아핀변환

아핀변환(affine transformation)은 선형변환에 이동(translation)이 결합된 것이다.벡터는 위치와 무관하게 오직 방향과 크기만 서술하는 특징이 존재하여, 벡터만 놓고 봤을때 이동이라는 개념은 의미가 없는 행위이다. 벡터는 결국 이동에 대해 불변이어야 하며, 이동(위치벡터)은 오직 점에만 적용되어야 한다. 이를 위해서 동차좌표(homogeneous coordinate)라는 것을 이용하면 점과 벡터를 동일한 방식으로 다룰 수 있다. 동차좌표는 3차원 벡터에 $w$ 성분을 추가한 4원소쌍의 형태인데, 이 $w$의 값은 서술하는 것이 점이냐 벡터이냐에 따라 달라진다. 벡터의 경우 $(x,y,z,0)$점의 경우 $(x,y,z,1)$점에 대해서는 $w=1$로 설정하면 이동 시 점이 정확히 이..

DirectX 2026.05.10

DirectX3D) 8. 선형변환

우리가 이전 글에서 SRT 변환에 대해서 알아본적이 있다.우리는 이번에 크기와 회전의 대해서 수학적인 공식으로 알아보고자 한다. 먼저 다시 선형변환의 정의에 대해서 상기시켜보자. 예를들어 수학 함수 $\tau(v)$ $= \tau(x,y,z)$ $= (x^{'},y^{'},z^{'})$을 생각해 보자. 이 함수는 3차원 벡터 하나를 받아서 3차원 벡터 하나를 얻을 수 있다. 만일 $\tau$가 다음 조건들을 만족하면, 이를 가리켜 선형변환(linear transformation)이라고 부른다. $\tau(u + v) = \tau(u) + \tau(v)$$\tau(ku) = k\tau(u)$여기서 $u = (u_x,u_y,u_z)$와 $v = (v_x,v_y,v_z)$는 임의의 3차원 벡터이고, $k$는 ..

DirectX 2026.05.10

DirectX3D) 7. 행렬식

행렬식(determinant)은 정방행렬( $n \times n$인 형식의 행렬 )을 받아서 실수 값을 산출하는 특별한 함수이다.정방행렬 $A$의 행렬식은 흔히 $det \ A$로 표기한다. 행렬식이 선형변환 하에서 그 부피가 변하는 방식에 대한 정보를 제공함을 증명하는 것이 가능하다.이전 행렬관련 글에서 봤듯이 행렬식은 행렬의 역을 구할 때 행렬식이 쓰이기도 한다.정방행렬 $A$는 오직 $det \ A \neq \ 0$일 때에만 가역(역행렬이 존재함)이다라는 것을 전 글에서 우리는 알아봤다. 이 명제를 이용해서 주어진 행렬이 역행렬을 구할 수 있는지 손쉽게 알 수 있다.먼저 행렬식의 정의를 알아보기 전에 소행렬(matrix minor, 부분행렬)에 대해 알아보자 소행렬$n \times n$행렬 $A$..

DirectX 2026.05.10

DirectX3D) 6. 행렬의 활용(SRT)

이제 SRT 변환을 행렬을 통해 알아보도록 할 것이다. 아래는 Scale, Rotation, Translation에 대한 변환 행렬이다. Scale (크기 변환 - S)물체의 크기를 각 축 방향으로 $a, b, c$배만큼 조절한다.수식: $X = ax, \ Y = by, \ Z = cz$행렬$$M_S = \begin{pmatrix} a & 0 & 0 & 0 \\ 0 & b & 0 & 0 \\ 0 & 0 & c & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}$$ Rotation (회전 변환 - R)특정 축을 기준으로 물체를 회전을 시킨다. X축 회전 수식:$X = x$$Y = y \cos\phi - z \sin\phi$$Z = y \sin\phi + z \cos\phi$행렬 ($R_x$):$..

DirectX 2026.05.09

DirectX3D) 5. 행렬

행렬이란 쉽게 말해 행과 열로 이뤄진 사각형 형태의 배열이다.행렬을 구성하는 수들을 원소, 성분이라고 한다. 행렬의 한 성분을 지칭할 때, 그 성분의 행과 열 번호를 이중 아래 첨자로 지정하는 (( M_{ij} )) 형태의 표기법을 사용한다. 첫 아래첨자가 행이고, 둘째 아래첨자가 열이다. 아래는 행렬의 덧셈, 뺄셈을 나타낸다. (( A = \begin{bmatrix} 1 & 5 \\ -2 & 3 \\ \end{bmatrix} ))(( B = \begin{bmatrix} 6 & 2 \\ 5 & -8 \\ \end{bmatrix} ))(( C = \begin{bmatrix} 1 & 5 \\ -2 & 3 \\ \end{bmatrix} ))(( D = \begin{bmatrix} 2 & 1 & -3 \\ -6..

DirectX 2026.05.05

DirectX3D) 4. Point

3차원 공간에서 특정 차원 공간 내의 위치를 지정할 수 있어야 한다.특정한 좌표계를 기준으로 한 표준 위치에 있는 벡터를 3차원 공간 안의 한 위치를 나타내는 데 사용할 수 있다. (원래 벡터는 위치를 중요시 여기지 않고, 크기와 방향만 요한다.) 위의 그림처럼 이러한 특정 위치를 나타내는 벡터를 위치벡터( position vector ) 라고 부른다.위치벡터에서 중요한 것은 벡터의 방향이나 크기가 아니라 벡터 머리 끝에 위치한 끝 좌표이다.그걸 우리는 특정한 위치를 그냥 점을 찍어서 나타낼 수 있다. 두 점끼리의 합은 별로 의미가 없지만, 이를 벡터 연산들로 확장할 수 있다. 예를 들어 두 점의 차 q - p를 p에서 q로의 벡터라고 정의할 수 있고, p 더하기 벡터 v를, p를 v만큼 이동했을 때 도..

DirectX 2026.04.30

DirectX3D) 3. 외적

다른 종류의 벡터 곱셈으로 가위곱(cross product) 또는 외적(outer product)이라는 것이 있다.해당 외적의 결과값은 벡터값이 나온다. 또한 외적은 오직 3차원 벡터에 대해서만 정의된다. ( 2차원 벡터의 외적이란 것은 존재하지 않는다. )두 3차원 벡터 u와 v의 외적을 취하면, u와 v모두에 직교인 또 다른 벡터 w가 나온다.즉, w는 u와 직교이고 v와도 직교이다. 아래 그림은, 외적의 정의가 되겠다. 왼손 엄지 법칙으로 따졌을 때, 해당 엄지방향이 (( w )) (( = u )) x (( v ))의 방향이 된다.만약 오른손잡이 좌표계를 다루는 경우에는, 오른손 엄지 법칙을 따라야 한다. 해당 경우에도 엄지방향이 외적으로 나온 벡터의 방향이 된다. 외적의 특징외적은 교환법칙이 성립..

DirectX 2026.04.29

DirectX3D) 2. 내적

1. 내적점곱( dot product ) 또는 내적( inner product )은 스칼라 값을 내는 벡터 곱셈의 일종이다.결과가 스칼라 값이라서 스칼라 곱( scalar product )이라고 부른다. u, v 라는 벡터가 있을 때, 두 벡터를 내적하면 아래와 같다. u dot v = u(x)v(x) + u(y)v(y) + u(z)v(z) 다른 말로 하면 내적은 대응되는 성분들의 곱들의 합이다.코사인 법칙으로도 다음과 같은 관계를 찾을 수 있다.u · v = ||u|| ||v|| cosθ 여기서 θ는 벡터 u와 v사이의 각도이며, 0 ≤ θ ≤ π이다. 두 벡터의 내적이 두 벡터사이의 각도의 코사인을 벡터 크기들로 비례시킨 것임을 뜻한다. u.v 둘 다 단위벡터인 경우 u dot v 는 두 벡터 사이..

DirectX 2025.08.25

DirectX3D) 1. Vector

DirectX를 공부하기 위해 필요한 가장 기초적인 수학 개념중 하나가 Vector이다.해당 Vector는 수학이나, 유니티, 언리얼같은 엔진에서 배웠던 개념도 DirectX에서도 적용된다.Vector의 특징은 아래와 같다.1. Vector는 크기와 방향을 모두 가진 수량을 가리키는 말이다. ( 이런 크기와 방향으 모두 가진 수량을 벡터값 수량이라 부른다 - 해당 벡터값 수량의 예로 힘, 변위, 속도가 있다. )2. Vector는 힘이나 변위, 속도를 나타내는데 사용하며, 순수 방향을 나타내는 경우에서도 Vector를 사용한다.3. 벡터가 그려져 있는 위치는 중요하지 않다. ( 위치를 바꿔도 벡터의 크기나 방향은 변하지 않기 때문에 )4. 벡터는 길이와 방향이 같을 때, 상등(equal)하다. 수학적 특..

DirectX 2025.08.25