Software Development/Graphics

게임을 움직이는 수학과 물리 4장 - 2차원

huiyu 2018. 2. 4. 18:59

게임을 움직이는 수학과 물리 4장 - 2차원


4.1 차원

- 차원 : 공간을 표현하는 한가지 지표.
  3차원이란 차원이 3개란 의미인데 가로, 세로, 높이를 가리킨다.
  2차원이란 가로와 세로로 구성된 차원으로 일반적으로 평면 디스플레이에서 사용한다.

4.2 좌표

- 좌표 : 화면에서의 위치를 나타낸 것

-좌표의 이동

: (5,2)->(1,4)로 이동하는 것은 x는 5->1, -4만큼 움직이고 y축은 2->4, 2만큼 움직인다.
 결국 (-4, 2)만큼 움직인 것이다. (-4, 2)가 이동량이 되는데 이 이동하는 정보를 벡터(vector)라고 한다.

4.3 좌표와 벡터

 - 위치를 나타내는 것은 좌표, 이동량을 나타내는 것은 벡터
 모두 (x,y)형태로 표기한다. 좌표는 어느 지점을 가르키는 위치 정보이고, 벡터는 이동량을 나타내는 형태가 없는 정보이다.
(위 그림에서 (1,4),(5,2)는 각 점을 가리키는 좌표이며, (5,2)->(1,4)로 이동한 정도 (-4,2)는 이동량을 가리키는 벡터이다.

 - 좌표와 벡터의 연산
   1) 좌표A + 벡터B = 좌표C, 좌표에 벡터를 더하면 좌표가 되고, 결과로 나온 좌표C는 좌표A를 벡터B만큼 움직인 좌표
   2) 좌표A - 벡터B = 좌표D, 좌표A에서 벡터B를 더한 좌표와는 정반대 방향으로 이동한 값이 나온다.
   3) 좌표A - 좌표B = 벡터C, 좌표A에서 좌표B를 빼면, 이동량 벡터C가 나온다.

 4) 벡터A + 벡터B = 벡터C
 5) 벡터A - 벡터B = 벡터D
   : 벡터에 벡터를 연산한 결과는 벡터이다. 단순히 두 벡터의 이동량을 더한 벡터가 된다.


 - 좌표와 벡터의 곱하기와 나누기
  : 일반적으로 곱하기와 나누기는 스칼라(scalar)를 사용, 스칼라는 숫자하나, 즉 일반적인 숫자를 말한다.
 - 좌표에 스칼라를 곱하면 '원점(0,0)에서 더 확대된 좌표로 바뀐다.'
 - 벡터에 스칼라를 곱하거나 나눠서 나오는 결과는 '벡터 길이를 바꾼 벡터'다 

- 벡터의 길이
 * 벡터의 길이는 피타고라스 정리를 사용한다. 삼각형의 세 각 중 하나가 직각인 삼각형을 직각 삼각혁이라고 한다. 빗변을 c, 남은 두 변을 a,b라고 할때 다음 식이 성립한다.

이 식을 벡터 길이를 구할때도 사용한다, 벡터는 x축, y축의 위치에서 방향과 길이를 정한다. 각 축이 수직이므로 벡터는 직각삼각형이라고 할 수 있어, 아래와 같이 벡터 l을 구할 수 있다.


 - 벡터의 정규화

: 벡터의 정보는 방향과 길이 두가지 정보를 갖고 있다. 방향정보만 필요할 땐 벡터 길이를 1로 맞추는데, 이러한 작업을 정규화(normalization)라고 한다.

정규화 공식
(정규화된 벡터) = (벡터 A) / (벡터 A의 길이)

벡터를 벡터 길이로 나눠주면 된다.


728x90