맨틀 이야기

벡터의 기초 본문

Maths & Physics

벡터의 기초

jbilee 2024. 11. 17. 16:20

벡터는 규모와 방향을 가진 물리량이다. 프로그래밍에서는 오브젝트의 위치나 움직임을 파악하거나 나타낼 때 유용하다.

 

자바스크립트에서는 아래와 같이 x와 y 요소를 가진 객체로 벡터를 표현해볼 수 있다.

// 원점(0, 0)에서 x=1, y=2로 향하는 벡터
{ x: 1, y: 2 }

 

벡터와 덧셈

벡터의 합을 구하려면 두 벡터의 x값끼리, 그리고 y값끼리 더해주면 된다. 그 결과로 한 벡터의 시작점에서 나머지 벡터의 끝점으로 향하는 벡터가 만들어진다.

이미지 출처: Unity

 

객체가 한 방향으로 이동하고 있는 도중에 외부의 힘(바람 등)이 밀어내면 해당 객체가 이동하던 방향이 바뀌게 될 것이다. 벡터의 합을 구해 객체가 최종적으로 이동하게 되는 경로를 알아낼 수 있다.

 

벡터와 뺄셈

두 객체가 가진 위치의 차는 한 객체에서 다른 객체로 향하는 벡터라고 볼 수 있다. 벡터의 차를 계산하면 객체 간의 거리와 누가 누구로 향하는지 그 방향을 알아낼 수 있다.

이미지 출처: Unity

 

벡터의 크기

벡터의 크기(magnitude)는 벡터의 시작점에서 끝점까지의 길이를 말한다. x축과 y축은 늘 90도를 이루고 있으니 피타고라스 정리로 벡터의 크기를 구할 수 있다.

// a = { x: n, y: m } 라고 가정했을 때,
function magnitude(a) {
  return Math.sqrt(a.x * a.x + a.y * a.y);
}

// 3차원일 경우:
// a = { x: i, y: j, z: k }
function magnitude(a) {
  return Math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z);
}

 

Magnitude 값은 항상 절댓값으로 계산하고, || 기호를 사용해 ||V||로 표현한다.

 

단위 벡터 (unit vector)

단위 벡터는 magnitude 값이 항상 1로 고정된 벡터를 말한다. 단위 벡터를 구하려면 벡터의 x값과 y값을 각각 magnitude 값으로 나누는데, 이 계산법으로 단위 벡터를 계산하는 것을 정규화라고 한다.

function normalize(a) {
  var mag = magnitude(a);
  if (mag === 0) {
    return { x: 0, y: 0 };
  } else {
    return { x: a.x / mag, y: a.y / mag };
  }
}

 

수식에서 단위 벡터를 나타낼 땐 V̂ 표기법을 사용한다.

 

참고: