(1) 정역학 - 5. 벡터의 계산
정역학적 문제를 해결하기 위해서는 벡터 계산이 필수적이다. 이는 힘이 특정 방향으로 작용할 때 일정한 기준을 제시하기 위해서이다. 기계부품에 어떠한 힘이 가해지고 있을 때 이 부품을 어떻게 보강하는 것이 가장 경제적이고 안전한 방법인지 알기 위해서는 힘의 크기뿐만 아니라 방향도 알아야 하기 때문이다. 그러나 방향을 정하는 것은 순전히 임의에 의한 것이다.
이렇게 임의의 방향을 정하는 것은 계산의 편의성과 일관성을 위한 것이다. 보통 이를 좌표축이라 부른다. 좌표축의 경우 가장 일반적인 방법이 물체의 중력 작용방향의 반대 방향을 y축으로 놓고 이에 수직한 방향을 x축으로 설정하는 직교 좌표계가 있을 수 있고, 원형의 물체에 대해 보다 쉽게 접근하기 위해 설정하는 극좌표계(원통형, 구면)가 있다.
벡터의 계산을 너무 어렵게 접근하면 매우 힘들 수 있다. 벡터는 크기(magnitude)와 방향(direction)을 표현하는 값이다. 벡터는 시점(원점)에서 해당 값까지 일종의 선을 연결하여 크기를 나타낼 수 있다. 만일 위치를 나타낸다면 위치벡터가 될 것이고, 힘과 같은 양을 나타낸다면 힘벡터가 될 수 있다. 방향은 시점(0, 0)에서 해당 값(x, y)에 화살표를 그려 시각화 할 수 있다. [그림1(a)]
두 벡터의 합은 어떻게 될까? 그림 1(b)와 같이 벡터 A와 벡터 B를 더할 경우를 생각해 보자. 벡터는 각 성분(여기서는 x, y성분)을 별도로 계산하면 된다. 즉, x축은 x축대로 계산하고, y축은 y축대로 계산하면 된다. 여기서 A벡터의 x축 성분은 2, y축 성분은 4이고 B벡터의 x축 성분 2, y축 성분은 -1이다. x축 성분끼리 더하면 4, y축 성분끼리 더하면 3이 된다. 벡터 B는 원점을 시점으로 하고 종점을 그리면 보라색 벡터가 되어야 되는데, A벡터의 종점에 이를 B벡터의 시점을 옮겨 놓고(노란색 벡터) 보면 A벡터와 B벡터의 합에 의한 C벡터의 종점이 옮겨 놓은 B벡터의 종점과 일치한다. 이는 벡터의 성질 중 하나로 벡터는 크기와 방향이 같으면 좌표 평면에 놓인 위치와 관계없이 동일한 벡터이다. 이를 수학적으로 표현하면 상등벡터라고 한다. 벡터는 좌표평면 내에서 수직, 수평이동(translation)이 가능하다. 주의할 점은 회전(rotation)은 안 된다는 점이다. 회전을 하면 방향이 바뀌기 때문이다.
리그 오브 레전드라는 게임을 예시로 생각해보자. 각 챔피언은 공격을 하고 이동을 한다. 그럼 이들의 공격 시 무기의 발사 방향을 어떻게 정할까? 그리고 이동 시 원하는 방향은 어떻게 얻을까? 이것을 생각하면 벡터의 계산이 매우 쉬운 것이라 알 수 있다. 즉, 무기를 발사하기 위해서는 각 챔피언의 선 방향이 명확해야 할 것이다. 정면을 향해 무기를 발사하기 때문이다. 그래서 각 챔피언의 방향이 360도 어느 방향인가를 알아야 하고, 대상물까지 거리를 알아야 한다. 대상물의 거리까지 무기가 도달하지 않으면 의미가 없기 때문이다. 따라서 무기를 사용하기 위해서는 챔피언의 방향과 챔피언의 정면에서 대상물의 방향 및 거리가 정확해야 무기가 도달할 수 있다는 것을 알 수 있다. 그래서 좌표계가 필요한 것이다.
아래 그림 2.(a)와 같이 미스포츈이 트위치를 향해 탄환을 발사할 경우 미스포츈의 정면에서 트위치의 방향과 거리가 정확하게 정해져야 공격이 가능하다. 그래서 이를 수학적으로 표현하면 로 나타낼 수 있다. 여기서 는 방향과 거리가 포함된 값이다. 그래서 이를 직교좌표로 표현하면, 수평방향으로 x만큼 떨어져 있고 수직방향으로 y만큼 떨어져 있는 것으로 표현할 수 있다.
그림 2.(b)에서 미스포츈이 트위치를 찾을 때 미스포츈의 기준으로부터 트위치가 있는 방향과 거리를 계산해보자. 우선 주어진 상태에서 티모를 원점으로 하여 미스포츈의 위치를 A벡터로 나타내고 트위치의 위치를 B벡터로 나타낼 수 있다. 앞서 벡터의 합에서 설명하였듯 벡터를 합할 때는 한 벡터의 머리에서 다른 벡터의 꼬리가 연결되었다. 그러나 그림 2.(b)에서 보듯 A벡터의 머리와 B벡터의 머리가 연결된 것으로 이는 벡터의 차를 나타내는 것이다. 결국 B벡터에서 A벡터를 빼야 된다. 직접 B벡터에서 A벡터를 빼도 되지만 앞서 사용한 벡터의 합을 이용하기 위해 A벡터를 역벡터로 만들어 B벡터와 합하면 된다. 역벡터는 크기는 같고 방향이 반대인 벡터를 의미한다. A벡터의 x, y성분을 모두 반대방향으로 하면 된다. 즉 A의 역벡터의 좌표는 (-3, -2)로 나타낼 수 있다. 이렇게 해서 A의 역벡터와 B벡터를 더하면 x축 성분은 -3+(-3)=-6, y축 성분은 3+(-2)=1이 된다. 따라서 C벡터의 값은 (-6, 1)이 된다. 따라서 C벡터는 미스포츈이 트위치를 바라보는 벡터인 것이다.
그렇다면 방향은 계산되었고, 거리는 어떻게 계산할 수 있을까? 이는 간단하게 생각하면 된다. 앞서 벡터는 크기와 방향이 같으면 좌표 평면 어디에 있어도 동일하다고 하였다. 위의 그림에서 벡터 C의 꼬리를 원점으로 옮겨 놓으면 벡터 C의 크기를 삼각함수로 계산할 수 있다. 즉, 거리는 6.08이 된다.
이러한 방식으로 실제 프로그램에서 위치와 방향을 설정하도록 한다. 따라서 벡터의 계산 방법을 알아야 게임프로그램을 만들 수 있다는 것이다. 앞으로 벡터를 좀 더 다루고 이를 정역학에서 활용하는 예를 통해 정역학 계산에 있어서 벡터의 중요성을 살펴 볼 것이다.
[엔지닉 키워드]
좌표계, 직교좌표, 극좌표계, 상등벡터, 역벡터
작성자 엔지닉
신고글 [정역학] 5. 벡터의 계산
- 욕설/비하 발언
- 음란성
- 홍보성 콘텐츠 및 도배글
- 개인정보 노출
- 특정인 비방
- 기타
허위 신고의 경우 서비스 이용제한과 같은
불이익을 받으실 수 있습니다.