---
# System prepended metadata

title: Linear Transformations
tags: [math, linear transformation, geometry]

---

# Linear Transformations

## Basics

- Coordinate System
- Translation
- Scaling
- Rotation

## Coordinate Systems

- Cartesian Coordinate System (x, y)
- Polar Coordinate System ($\theta$ + reference direction)

### Skewed Space

When a space is skewed, all stuff is skewed, including light and it's projections.

### 2D
$$
\hat{i} = \pmatrix{1\\0},
\hat{j} = \pmatrix{0\\1}
$$

$$
\begin{array}l
(x, y) &= x\hat{i} + y\hat{j}\\
&= x\pmatrix{1\\0} + y\pmatrix{0\\1}\\
&= \pmatrix{x\\y}
\end{array}
$$

### Different Ways to see (x,y)

Re-define the (x,y) coordinate.

- x, y as scalar of $\hat{i},\hat{j}$
- x, y as the projected vectors on $\hat{i},\hat{j}$

### 3D

$$
\hat{i} = \pmatrix{1\\0\\0},
\hat{j} = \pmatrix{0\\1\\0}, 
\hat{k} = \pmatrix{0\\0\\1}
$$

$$
\begin{array}l
(x, y, z) &= x\hat{i} + y\hat{j} + z\hat{k}\\
&= x\pmatrix{1\\0\\0} + y\pmatrix{0\\1\\0} + z\pmatrix{0\\0\\1}\\
&= \pmatrix{x\\y\\z}
\end{array}
$$

### Projections

- Othgonal Projection
- Perspective Projection

## Translation

$$
\cases{
x' = x + \Delta x\\
y' = y + \Delta y\\
z' = z + \Delta z\\
}
\implies
(x',y',z') = (x+\Delta x, y+\Delta y, z+\Delta z)
$$

$$
\begin{array}l
\pmatrix{x'\\y'\\z'} &= \pmatrix{x\\y\\z}+\pmatrix{\Delta x\\\Delta y\\\Delta z}\\
&=\pmatrix{x+\Delta x\\y+\Delta y\\ z+\Delta z}
\end{array}
$$

## Scaling

- Scale $\hat{i}$
$x\hat{i} \implies x\hat{i'}$
- Scale $\hat{j}$
$y\hat{j} \implies y\hat{j'}$
- Scale $\hat{k}$
$z\hat{k} \implies z\hat{k'}$

## Rotation

- $\pm 90^\circ$
- $\pm \theta$

## Relection

### Conjugate

#### 2D Reflection

- Reflection to $\hat{i}\implies\cases{\hat{i}\implies\hat{i}\\\hat{j} \implies -\hat{j}}$
- Reflection to $\hat{j}\implies\cases{\hat{i}\implies -\hat{i}\\\hat{j} \implies \hat{j}}$
- 2D Reflection to $y=x\implies f(x,y)=(y,x)$
- 2D Reflection to $y=-x\implies f(x,y)=(-y,-x)$
- Reflection to a vector(u,v)

#### 3D Reflection

- Reflection to $\hat{i}\implies\cases{\hat{i}\implies\hat{i}\\\hat{j} \implies -\hat{j}\\\hat{k} \implies -\hat{k}}$
- Reflection to $\hat{j}\implies\cases{\hat{i}\implies -\hat{i}\\\hat{j} \implies \hat{j}\\\hat{k} \implies -\hat{k}}$
- Reflection to $\hat{k}\implies\cases{\hat{i}\implies -\hat{i}\\\hat{j} \implies -\hat{j}\\\hat{k} \implies \hat{k}}$
- Reflection to a vector (Quat)

## Coordinate Transformation


$$
\cases{
(x,y)\text{ in coordinate system A}\\
(x',y')\text{ in coordinate system B
}
}
$$

### Example

World Coordinate(Space) to Camera Coordinate(Space)

Model coordinate $(x, y, z)$ in world space.
Camera coordinate $(cam_x, cam_y, cam_z)$ in world space.

#### Model coordinate relative to Camera coodinrate 

$$
\pmatrix{x'\\y'\\z'\\1}=
\pmatrix{1&0&0&-cam_x\\
0&1&0&-cam_y\\
0&0&1&-cam_z\\
0&0&0&1
}\pmatrix{x\\y\\z\\1}
$$

#### Transform to Carmera's Viewport(Space)

Camera's right: $\vec{u}$ = $(u_x, u_y, u_z)$
Camera's up: $\vec{v}$ = $(v_x, v_y, v_z)$
Camera's back: $\vec n$ = $(n_x, n_y, n_z)$, where $-\vec{n}$ is the direction to the target(lookAt)

$$
\pmatrix{
u_x&v_x&n_x&0\\
u_y&v_x&n_y&0\\
u_z&v_z&n_z&0\\
0&0&0&1
}^{-1} =
\pmatrix{
u_x&u_y&u_z&0\\
v_x&v_y&v_z&0\\
n_x&n_y&n_z&0\\
0&0&0&1
}
$$

$$
\pmatrix{x''\\y''\\z''\\1}=
\pmatrix{
u_x&u_y&u_z&0\\
v_x&v_y&v_z&0\\
n_x&n_y&n_z&0\\
0&0&0&1
}
\pmatrix{x'\\y'\\z'\\1}
$$

###### tags: `math` `geometry` `linear transformation`