게임을 움직이는 수학과 물리 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의 길이)
벡터를 벡터 길이로 나눠주면 된다.
'Software Development > Graphics' 카테고리의 다른 글
컴퓨터 그래픽스 이론 정리 - 더블버퍼링(Double Buffering) (0) | 2018.04.28 |
---|---|
컴퓨터 그래픽스 이론 정리 - 컬러이론, 컬러모델 (0) | 2018.04.22 |
OpenGL SuperBilbe Chapter3, 파이프라인을 마치며.. (1) | 2018.01.27 |
OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 5) 프래그먼트 쉐이더~프레임버퍼 (0) | 2018.01.27 |
OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 4) 프리미티브 어셈블리, 클리핑, 래스터라이제이션 (0) | 2018.01.21 |