- 저자
- 프랭크 D 루나
- 출판
- 한빛미디어
- 출판일
- 2013.10.15
벡터 대수
벡터는 게임들의 공통적 요소인 컴퓨터 그래픽, 충돌 검출, 물리 시뮬레이션에서 중요한 역할을 한다.
1. Vector
벡터(Vector, 방향량)은 크기와 방향을 모두 가진 수량을 가리키는 말이다.
또한 크기(magnitude)와 방향(direction)을 모두 가진 수량을 벡터값 수량(vector-valued quantity)라고 부른다.
벡터값 수량의 예로는 힘(force : 힘은 특정 방향과 세기, 즉 크기로 가해진다.) 변위(displacement : 한 입자의 최종적인 이동 방향 및 거리), 속도(빠르기와 방향)가 있다.
또한 순수한 방향만 나타내는 경우에도 벡터를 사용한다
시각적으로 벡터는 지향 선분(directed line segment, 방향이 있는 선분)으로 표시한다.
벡터의 크기와 방향을 나타내는 예제
선분의 길이는 벡터의 크기를 나타내고 선분 끝의 화살표는 벡터의 방향을 뜻한다. 벡터가 그려져 있는 위치는 중요하지 않다. 위치를 바꾸어도 벡터의 크기나 방향은 변하지 않기 때문이다.(오른쪽으로 100km/h 로 운전한다고 하면 위치가 바뀌어도 방향과 속도는 같기 때문) 따라서 두 벡터는 길이가 같고 같은 방향을 가리킬 때에만 상등(equal)이다.
위의 그림의 경우 벡터 $\mathbf{u}$와 $\mathbf{v}$ 는 길이가 같고 가리키는 방향도 같으므로 상등이다.
벡터를 다른곳으로 병진이동(translation, 이동)해도 벡터의 의미는 변하지 않는다.
A의 개미와 B의 개미가 서로 다른 지점에서 북쪽으로 10m 나아가지만 벡터의 값은 $\mathbf{u} = \mathbf{v}$ 이다. 즉, 두 개미 모두 북쪽(방향)으로 10미터(크기) 나아간다.
2. 벡터와 좌표계
컴퓨터는 벡터를 기하학적 () 으로 다루지 못한다. 따라서 벡터를 수치적으로 지정하는 방법이 필요하다. 이를 위해, 공간에 하나의 3차원 좌표계를 도입하고, 모든 벡터를 그 꼬리가 일치하도록 이동시킨다.
표준 위치에 있는 벡터
3차원 좌표계 도입으로 인해 하나의 벡터를 그 머리 (화살표 끝)의 좌표로 규정할 수 있으며, 벡터를 $\mathbf{v} = (x, y, z)$로 표기할 수 있습니다.
참고: 2차원을 다룰 때에는 2차원 좌표계를 사용하며 벡터의 성분은 두 개로 표현됩니다. $\mathbf{v} = (x, y)$
3차원 좌표계 도입으로 인한 벡터의 좌표 규정
좌표계에 따라 달라지는 벡터 표현
이 그림의 공간에는 하나의 벡터 $\mathbf{v}$와 두 개의 좌표계가 있습니다. $\mathbf{v}$를 표준 위치로 이동한다고 할 때, $\mathbf{v}$의 꼬리를 한 기준계의 원점으로 이동할 수도 있고 다른 기준계의 원점으로 이동할 수도 있습니다. 그런데 A를 기준으로 한 벡터 $\mathbf{v}$의 좌표와 B를 기준으로 한 $\mathbf{v}$의 좌표가 다르다는 점을 주목하기 바랍니다. 같은 벡터 $\mathbf{v}$라도 기준계가 다르면 그 좌표 표현이 달라진다는 것입니다.
(물의 온도에 비유할 수 있습니다. 끓는점이 섭씨에서는 100도, 화씨에서는 212도이지만 끓는 물의 온도는 측정 단위의 종류와 무관하게 동일합니다.)
좌표계에 따라 바뀌는 것은 벡터를 표현하는 좌표뿐입니다. 벡터를 좌표로 규정하거나 식별할 때 그 좌표는 항상 어떠한 기준계에 상대적임을 뜻합니다. 3차원 컴퓨터 그래픽에서는 여러 개의 기준계를 사용하는 경우가 많으므로, 벡터를 다룰 때에는 주어진 벡터의 좌표가 현재 어떤 기준계에 상대적인지 기억할 필요가 있습니다.
3. 왼손 좌표계 와 오른손 좌표계
Direct3D는 왼손 좌표계를 사용한다.
왼손 좌표계와 오른손 좌표계
왼손 좌표계는 z 축이 지면 안쪽 즉, 모니터 안쪽으로 증가하고 오른손 좌표계는 지면 밖 즉, 모니터 바깥 쪽으로 튀어나온다.
4. 기본적인 벡터 연산들
벡터 $\mathbf{u} = (x, y, z)$, $\mathbf{v} = (a, b, c)$이라고 가정합니다.
- 두 벡터는 성분들이 상등(equal)일 때만 상등합니다. 즉, 오직 $x = a$, $y = b$, $z = c$일 경우에만 $\mathbf{u} = \mathbf{v}$라고 합니다.
- 벡터 덧셈은 성분별로 이루어집니다. $\mathbf{u} + \mathbf{v} = (x + a, y + b, z + c)$입니다. 벡터 덧셈은 같은 차원의 벡터들끼리만 가능합니다.
- 벡터에 스칼라(scalar: 크기만 있는 수량)를 곱할 수 있습니다. 그 결과값도 벡터입니다. 스칼라 $k$를 곱할 때 $k \cdot \mathbf{u} = (kx, ky, kz)$입니다.
- 벡터 뺄셈은 벡터 덧셈과 스칼라 곱셈을 통해 정의됩니다.
$\mathbf{u} - \mathbf{v} = \mathbf{u} + (-1 \cdot \mathbf{v}) = \mathbf{u} + (-\mathbf{v}) = (x - a, y - b, z - c)$ 이다.
5. 예시
벡터 $\mathbf{u} = (1, 2, 3)$, $\mathbf{v} = (1, 2, 3)$, $\mathbf{w} = (3, 0, -2)$이고 스칼라 $k = 2$라고 가정합니다.
예 1
- $\mathbf{u} + \mathbf{w} = (1, 2, 3) + (3, 0, -2) = (4, 2, 1)$
- $\mathbf{u} = \mathbf{v}$
- $\mathbf{u} - \mathbf{v} = \mathbf{u} + (-\mathbf{v}) = (1, 2, 3) + (-1, -2, -3) = (0, 0, 0) = \mathbf{0}$
- $k \cdot \mathbf{w} = 2 \cdot (3, 0, -2) = (6, 0, -4)$
- 벡터의 성분들이 모두 0인 벡터는 $\mathbf{0}$으로 표기합니다.
예 2
벡터 부정과 스칼라 곱셈
A.벡터 $\mathbf{v} = (2, 1)$이라고 가정할 때, $-\frac{1}{2}\mathbf{v}$의 표현은 다음과 같습니다. $-\frac{1}{2}\mathbf{v}$는 $(-1, -\frac{1}{2})$를 의미합니다.
벡터를 부정(negation, 부호를 반대로 만든 것)하는 것은 그 벡터의 방향을 "뒤집는" 것에 해당하고, 스칼라 곱셈은 벡터
길이(크기)를 비례(확대나 축소)시키는 것에 해당합니다.
벡터 덧셈의 기하학적 표현
B.벡터 $\mathbf{x} = (2, \frac{1}{2})$이고 $\mathbf{y} = (1, 2)$라고 하면
기하학적으로 벡터 덧셈을 표현했을 때, $\mathbf{x}$의 꼬리를 $\mathbf{y}$의 머리와 일치하도록 병진 이동했을 때 $\mathbf{y}$의 꼬리에서 병진 이동을 한 $\mathbf{x}$의 머리와 일치하도록 이동해도 같은 결과 값이 나옵니다. (반대로 하여도 같은 값이 나옵니다.)
물리에서의 벡터 덧셈
이러한 벡터 덧셈 규칙들이, 물리에서 힘들을 더해 알짜힘(net force, 합력)을 구하는 것과
일치한다. 즉, 같은 방향의 두 힘(벡터)를 더하면 그 방향으로 더 강한 알짜힘(더 긴 벡터)
가 되며 서로 반대 방향의 두 힘(벡터)를 더하면 더 약한 알짜힘(더 짦은 벡터)가 된다.
벡터의 차에 대한 기하학적 표현
C.벡터 $\mathbf{x} = (2, \frac{1}{2})$이고 $\mathbf{y} = (1, 2)$라고 하면
기하학적으로 볼 때 두 벡터의 차 $\mathbf{y} - \mathbf{x}$는 $\mathbf{x}$의 머리에서 $\mathbf{y}$의 머리로 가는 벡터에 해당하며, 또한 $\mathbf{x}$와 $\mathbf{y}$를 점으로 간주할 때 $\mathbf{y} - \mathbf{x}$의 길이는 $\mathbf{x}$에서 $\mathbf{y}$까지의 거리라는 점을 알 수 있습니다.
'Math & Physics > Vectors' 카테고리의 다른 글
Vector - part3 내적 (0) | 2025.01.15 |
---|---|
Vector - Part2 단위벡터 (0) | 2025.01.15 |