728x90

1. 벡터 정의

  • 벡터는 크기와 방향을 모두 가진 수량을 가리키는 말이며, 힘이나 변위, 속도 ( velocity )를 나타내는 데 쓰인다.
  • 3차원 게임에서 플레이어가 바라보는 방향이나 다각형이 향한 방향, 광선이 이동하는 방향, 한 표면에서 광선이 반사되는 방향 등 순수한 방향만 나타낼 때에도 벡터를 사용한다.

1.1 벡터값 수량 예시

  • 힘    ( force : 힘은 특정한 방향과 세기로 가해지는데, 세기 ( strength ) 가 곧 크기이다 )
  • 변위 ( displacement : 한 입자의  최종적인 이동 방향 및 거리 )
  • 속도 ( 빠르기와 방향 )

2. 벡터와 좌표계

  • 컴퓨터는 벡터들을 기하학적으로 다루지 못하므로, 벡터들을 수치적으로 지정하는 방법이 필요하다.
  • 그 방법은, 공간에 하나의 3차원 좌표계를 도입하고 모든 벡터를 그 꼬리가 그 좌표계의 원점과 일치하도록 이동하는 것이다.
  • 그러면 하나의 벡터를 그 머리 ( 화살표 끝 )의 좌표로 규정할 수 있으며, v = ( x, y, z )로 표기할 수 있다.
  • 이렇게 하면 3차원 벡터를 컴퓨터 프로그램 안에서 부동소수점 값 세 개로 표현할 수 있다.

 

3. 벡터 연산 U = ( Ux, Uy, Uz ), V = ( Vx, Vy, Vz )

  • 두 벡터의 상등 조건은, 각 좌표 성분들이 모두 상등인 경우이다.  ( Ux = Vx, Uy = Vy, Uz = Vz인 경우 U = V 상등이다. )
  • 벡터 덧셈은 성분별로 이루어진다. ( U + V = ( Ux+Vx, Uy+Vy, Uz+Vz ) )
  • 벡터에 스칼라를 곱할 수 있으며, 그 결과는 벡터이다. ( 스칼라 k * U = ( kUx, kUy, kUz ) )
  • 벡터 뺄셈은 벡터 덧셈과 스칼라 곱셉을 통해서 정의된다.( U - V = U + (-1 * V ) = U + ( -V ) = ( Ux - Vx, Uy - Vy, Uz - Vz )

4. 길이와 단위벡터

  • 기하학적으로 한 벡터의 크기는 해당 지향 선분의 길이이다.
  • 벡터의 크기 ( 길이 )는 이중 수직선으로 표현한다.
  • U의 크기는 ||U||이다, 벡터 U = ( x, y, z )가 주어졌을 때 벡터의 크기는 피타고라스의 정리를 두 번 적용해서  계산할 수 있다.
  • ||U|| = 루트 ( x^2, y^2, z^2 )
  • 벡터를 순전히 방향을 나타내는 용도로만 사용하는 경우에는 벡터의 길이가 중요하지 않다.
  • 그런 '방향 전용' 벡터는 길이를 정확히 1(단위 길이)로 맞추어 두면 편리하다.
  • 크기가 1인 벡터를 단위벡터 (unit vector)라고 부르고, 임의의 벡터를 단위 벡터로 만드는 것을 정규화(normalization)라고 부른다.
  • 벡터의 각 성분을 벡터의 크기로 나누면 벡터가 정규화된다.
  • U / ||U|| = ( Ux / ||U||, Uy / ||U||, Uz / ||U|| )
  • ex) U = ( 0, 3, 4 ), ||U|| = 루트 ( 0^2 + 3^2 + 4^2 ) = 루트 ( 25 ) = 5, U / ||U|| = ( Ux / 5, Uy / 5, Uz / 5 )
반응형

'DirectX12 > 게임 수학' 카테고리의 다른 글

[게임 수학] 내적과 외적  (0) 2023.02.25

+ Recent posts