Contents
1. 참고링크 [Bottom] [Top]
2. 벡터(Vector) [Bottom] [Top]
일반적인 벡터의 개념은 n개의 실수(real number)들로 이루어진 튜플(tuple)을 말한다. 여기서 n은 일반적으로 차원을 나타낸다.
V = (V1, V2, ... , Vn)
3D 그래픽에서는 3차원 벡터를 사용한다.
V = (V1, V2, V3) = (x, y, z)
2.1. 벡터의 성질 [Bottom] [Top]
<정리 1>
스칼라(scalar) a, b 와 벡터 P, Q, R 가 주어졌을 때
P + Q = Q + P
(P + Q) + R = P + (Q + R)
(ab)P = a(bP)
a(P + Q) = aP + aQ
(a + b)P = aP +bP
벡터 V 의 크기(magnitude)는 스칼라 값이며 ||V|| 로 표기한다.
| |V| | = sqrt( V12 + V22 + ... + Vn2 )
따라서, 3차원 벡터의 크기는 다음과 같다.
| |V| | = sqrt( x2 + y2 + z2 )
단위벡터(unit vector) 는 벡터 V 에 1 / ||V|| 를 곱하여 변환한다. 이러한 과정을 정규화(normalization) 라고 한다.
V = V * (1 / ||V||)
L = 1 / ||V|| 라고 한다면, 3차원 벡터의 정규화는
V = (x * L, y * L, x * L)
<정리2>
스칼라 a 와 벡터 P, Q 가 주어졌을 때
| |P| | ≥ 0
P = (0, 0, ... , 0) 일 경우, ||P|| = 0
| |aP| | = |a| ||P||
| |P + Q| | ≤ ||P|| + ||Q||
2.2. 내적(Inner product) [Bottom] [Top]
내적은 inner product 또는 dot product 라고 하며 스칼라 곱이라고도 한다. 두 벡터의 내적은 두 벡터의 가리키는 방향의 차이를 구하는데 사용된다.
두 n차원 벡터 P 와 Q 의 내적은 P · Q 로 표시되며 다음과 같은 식으로 정의된다.
P · Q = (P1Q1 + P2Q2 + ... + PnQn)
3차원 벡터일 경우는 다음과 같다.
P · Q = (PxQx + PyQy + PzQz)
<정리3>
두 n차원 벡터 P 와 Q 가 주어졌을 때
P · Q = ||P|| ||Q|| cos α
스칼라 a 와 벡터 P, Q, R 가 주어졌을 때
P · Q = Q · P
(aP) · Q = a(P · Q)
P · (Q + R) = P · Q + P · R
P · P = ||P||2
|P · Q| ≤ ||P|| ||Q||
두 벡터 사이에서 서로 평행 또는 수직인 성분으로 분해해야 할 필요가 있을 경우 내적을 이용한다.
예를들어, 벡터 P를 벡터 Q 에 대하여 각 성분을 분해한다면 다음과 같다.
먼저, Q 와 평행한 성분의 벡터의 길이는 다음과 구한다.
| |P| | cos α = (P · Q) / ||Q||
따라서 Q 에 대한 P 의 성분은 다음과 같다.
평행 성분: projQPa = ((P · Q) / ||Q||) Q
수직 성분: projQPb = P - projQPa = P - ((P · Q) / ||Q||) Q
2.3. 외적(Cross product) [Bottom] [Top]
외적은 cross product 또는 outer product 라고 하며 벡터 곱이라고도 한다. 두 3차원 벡터의 외적은 두 벡터에 대한 수직인 새로운 벡터를 구하는데 사용된다.
두 3차원 벡터 P 와 Q 의 외적은 P × Q 로 표시되며 다음과 같은 식으로 정의된다.
P × Q = (PyQz - PzQy, PzQx - PxQz, PxQy - PyQx)
의사행렬식(pseudodeterminant)을 이용하여 다음과 같이 직접 계산할 수 있다.
여기서 i, j, k 는 각 x, y, z 축에 평행한 단위벡터이다.
i = (1, 0, 0)
j = (0, 1, 0)
k = (0, 0, 1)
<정리4>
두 3차원 벡터 P 와 Q 가 주어졌을 때
| |P × Q| | = ||P|| ||Q|| sin α
두 3차원 벡터 P 와 Q 에 대해, (P × Q) · P = 0 이며 (P × Q) · Q = 0 이다.
외적 P × Q 의 크기는 P 와 Q 에 의해 만들어지는 평행사변형의 넓이와 같다.
예를들어, 꼭지점 V1, V2, V3 인 임의의 삼각형의 넓이 A 를 다음과 같이 구할 수 있다.
A = (1/2) ||(V2 - V1) × (V3 - V1) ||
각각 양의 x, y, z 축을 가리키는 단위벡터 i, j, k 는 다음과 같은 성질을 갖는다.
i × j = k
j × k = i
k × i = j
순서를 반대로 한다면 결과는 (-) 가 된다.
j × i = -k
k × j = -i
i × k = -j
<정리 5>
스칼라 a, b 와 3차원 벡터 P, Q, R 가 주어졌을 때
Q × P = -(P × Q)
(aP) × Q = a(P × Q)
P × (Q + R) = P × Q + P × R
P × P = 0 = (0, 0, 0)
(P × Q) · R = (R × P) · Q = (Q × R) · P
P × (Q × P) = P × Q × P = P2Q - (P · Q)P
2.4. 법선(Normal vector) [Bottom] [Top]
3. 행렬(Matrix) [Bottom] [Top]
3.1. 행렬의 성질 [Bottom] [Top]
<정리 6>
스칼라 a, b 와 n*m 행렬 F, G, H 가 주어졌을 때
F + G = G + F
(F + G) + H = F + (G + H)
a(bF) = (ab)F
a(F + G) = aF + aG
(a + b)F = aF + bF
스칼라 a, b 와 n*m 행렬 F, m*p 행렬 G, p*q 행렬 H 가 주어졌을 때
(aF)G = a(FG)
(FG)H = F(GH)
(FG)T = GTFT
3.2. 역행렬 [Bottom] [Top]
3.3. 행렬식 [Bottom] [Top]
4. 변환(Transform) [Bottom] [Top]
- 이동
- 비례
- 회전
4.1. 동차좌표 (Homogeneous coordinates) [Bottom] [Top]
RHW (Reciprocal of Homogeneous W)
4.2. 사원수(Quaternion) [Bottom] [Top]
- 임의 축에 대한 회전 (Angular displacement)
5. 삼각함수(Trigonometric function) [Bottom] [Top]
- sin (Sine)
- cos (Cosine)
- tan (Tangent)
- csc (Cosecant)
- sec (Secant)
- cot (Cotangent)
