민돌이2 2022. 1. 4. 08:02

벡터(vector, 방항량)는 크기와 방향을 모두 가진 수량을 가리키는 말이다. 크기(magnitude)와 방향(direction)을 모두 가진 수량을 벡터값 수량(vector-valued quantity)이라고 부른다.

벡터의 선분의 길이는 벡터의 크기를 나타내고 화살표는 벡터의 방향을 나타낸다. 벡터가 그려진 위치는 중요하지 않다.

위치를 바꿔도 벡터의 크기나 방향은 변하지 않기 때문이다.

(a) 2차원 평면에 그려진 벡터들. (b) 개미의 북쪽으로 10미터 이동을 나타내는 벡터들.

위 그림에서 벡터 u와 v는 길이가 같고, 가리키는 방향도 같으므로 상등(equal)이다.

 

 

1.벡터와 좌표계

벡터에 대한 기하 연산들은 벡터값 수량들이 관여하는 문제를 풀 때 유용하다. 그러나 컴퓨터는 벡터들을 기하학적으로 다루지 못한다. 따라서 벡터들을 수치적으로 지정하는 방법이 필요한데, 공간에 하나의 3차원 좌표계를 도입하고, 모든 벡터를 그 꼬리가 원점과 일치하도록 이동시킨다(그림 1.2).

v의 꼬리가 좌표계 원점과 일치하도록 v를 이동

 

같은 벡터라도 기준계가 다르면 그 좌표 표현이 달라진다.

위 그림을 보면 벡터 v를 표준 위치로 이동한다고 할 때, 좌표계 A를 기준으로 한 벡터 v의 좌표와 좌표계 B를 기준으로 한 v의 좌표가 다른 것을 볼 수 있다.

쉽게 설명하자면, 벡터 v의 크기와 방향은 같지만 좌표계 A와 좌표계 B는 로컬 좌표는 같아도 글로벌 좌표는 다르다.

 

우리가 어떤 벡터를 좌표로 규정하거나 식별할 때 그 좌표는 항상 어떤 기준계에 상대적임을 뜻한다. 3차원 컴퓨터 그래픽에서는 여러 개의 기준계들을 사용하는 경우가 많으므로, 벡터를 다룰 때에는 주어진 벡터의 좌표가 현재 어떤 기준계에 상대적인지를 기억할 필요가 있다. 또한 한 기준계에서의 벡터 좌표를 다른 기준계로 변환하는 방법도 알아야 한다.

 

 

2.왼손잡이 좌표계 vs 오른손잡이 좌표계

Direct3D는 왼손잡이 좌표계(left-handed coordinate system)를 사용한다.

중지 : +x축, 검지 : +z축, 엄지 : +y축

난 이렇게 외웠는데 정석은 이 손모양이 아니다.

 

 

3.기본적인 벡터 연산들

벡터의 좌표 표현을 이용해서 벡터의 상등, 덧셈, 스칼라 곱셈, 뺄셈을 정의할 수 있다.

u = (ux, uy, uz)이고 v = (vx, vy, vz)라고 가정한다.

1.두 벡터는 오직 해당 좌표성분들이 상등일 때에만 상등이다. 즉, 오직 ux=vx이고 uy=vy, uz=vz일 때에만 u=v이다.

2.벡터 덧셈은 좌표성분별로 이뤄진다. 즉 u + v = (ux + vx, uy + vy, uz + vz)이다. 벡터 덧셈은 같은 차원의 벡터들끼리만 가능하다.

3.벡터에 스칼라(scalar)를 곱할 수 있다. k가 스칼라라고 할 때 ku = (kux, kuy, kuz)이다.

4.벡터 뺄셈은 벡터 덧셈과 스칼라 곱셈을 통해서 정의된다. u - v = u + (-1 * v) = u + (-v) = (ux - vx, uy - vy, uz - vz)이다.

728x90