> For the complete documentation index, see [llms.txt](https://taewoongs-organization.gitbook.io/jtwjs-dev-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://taewoongs-organization.gitbook.io/jtwjs-dev-wiki/dev_note/3d-graphic/math/undefined.md).

# 벡터의 연산

## 벡터의 연산

> 벡터에는 두 가지 기본 연산과 두 가지 응용 연산이 있다.

{% hint style="info" %}
벡터의 연산을 통해 벡터와 스칼라가 상호 순환하는 시스템이 만들어진다.

**스칼라(Scalar)란** 사칙연산이 가능한 수 집합의 원소
{% endhint %}

### 기본 연산

> 벡터의 두 기본 연산은 벡터의 생성 시스템에서 사용하는 선형 조합을 구성하는 필수 연산이다.

#### 벡터와 벡터의 덧셈&#x20;

$$v\_1 = (x\_1,y\_2), v\_2 = (x\_2,y\_2) \ v\_1 + v\_2 = (x\_1 + x\_2,  y\_1 + y\_2)$$

![](/files/1jqLtLFaMCssecuXUynU)&#x20;

* 각 축의 크기만큼 평행 이동한다.

#### 벡터와 스칼라의 곱셉

$$v = (x, y) \ av = (ax, ay)$$&#x20;

![](/files/CRHnHahNJPwPTfv7UGTd)

* 벡터가 가지고 있는 고유한 성질인 기울기를 그대로 유지해서 원점으로부터의 크기를 조절해주는 동작

### 선형 조합 (Linear Combination)

> 기본 연산을 조합해서 사용하면 새로운 벡터를 생성할 수 있는데 이것을 **선형 조합**이라 한다.

$$a\_1v\_1 + a\_2v\_2 + a\_3v\_3 + \cdots + a\_nv\_n = v$$&#x20;

* 평면의 경우, 평행하지 않은 두 벡터를 조합하면 평면상의 모든 벡터를 생성할 수 있다.

#### 표준기저벡터 (Standard Basic Vector)

![](/files/6kkO8Z6EGA8DVwX6XSrF)

* 평면의 모든 벡터를 생성할 수 있는 기저(basic)에서 가장 기본적인 기저 벡터
* 평면에 속하는 모든 벡터는 표준기저벡터 (1, 0)과 (0, 1)의 선형 조합으로 만들어진다.
* 이 둘을 조합하면 공간에 속한 모든 벡터를 쉽게 생성 가능하기 때문에 표준기저벡터라 한다.&#x20;

### 응용 연산

> 기본 연산만으로 표현할 수 있는 부분이 제한적이기 때문에 벡터를 다양하게 응용할 수 있는 별도의 연산
>
> 외적과 내적은 서로 부족한 부분을 보충해주는 성질을 가지고 있어 이 두 연산을 조합해서 다양한 문제를 해결할 수 있다. &#x20;

{% hint style="info" %}
물리엔진을 사용해서 문제를  해결하기 보다는 내적과 외적이 가지고 있는 수학적 성질을 사용해 1차적으로  문제를 해결하자.
{% endhint %}

#### 벡터의 내적

$$v\_1 = (x\_1,y\_1,z\_1), v\_2 = (x\_2,y\_2,z\_2) \ v\_1\*v\_2 = x\_1x\_2 + y\_1y\_2 + z\_1z\_2$$

* 벡터 응용에 관련된 대부분의 공식에 들어간다.
* 내적 공식은 컴퓨터가 빠르게 계산할 수 있고 많은 곳에서 활용할 수 있다.
* 두 벡터가 **직교**하고 있는지, 물체가 앞/뒤에 있는지 판별하는데 사용
* 시야각이 주어졌을 때 물체가 안에 들어와있는지 바깥에 있는지 판별
* 어떤 벡터를 다른 벡터에 투영시킬 때 주로 사용된다.
  * &#x20;내적의 투영 공식에서 평면의 방정식이 유도되고 평면들이 모여 절두체 영역을 만든다.

#### 벡터의 외적 &#x20;

$$v\_1 = (x\_1,y\_1,z\_1), v\_2 = (x\_2,y\_2,z\_2) \ v\_1 v\_2 = (y\_1z\_2-y\_2z\_1, z\_1x\_2 - z\_2x\_1, x\_1y\_2 - x\_2y\_1)$$

* 벡터의 외적 연산은 3차원에서만 가능하다.
* 두 벡터의 외적 연산은 서로 다른 요소만 조합해서 사용한다.&#x20;
* 두 벡터가 평행한지, 물체가 좌/우에 있는지 판별하는데 사용
* 두 벡터가 만들어낸 평면에 수직인 벡터를 만들어내는데 사용된다.
  * 평행하지 않은 두 벡터의 조합은 평면을 만들어낸다.
  * 즉, 평면의 방향을 외적을 통해서 파악 가능&#x20;
* 이러한 과정을 계속 거치면 3차원을 구성하는 세가지 축을 모두 외적을 통해서 계산 가능하다. &#x20;
