Vectors
Vector3 AtoB = B - A
Vectors will be written inside []. Ex [4,7,9].
The zero vector of any dimension will use a boldface zero as variable. 0 = [0,0,..,0].
To negate a vector we negate each component of the vector. [1,2,3] => [-1,-2,-3].
The length of a vector v is written as ||v||. The length is the square root of the sum of the squares of the components of the vector. Ex v = [x,y,z]. ||v|| = sqrt(x2+y2+z2).
A unit vector is a vector that has the magnitude of 1. To normalize a vector, divide the vector by its magnitude. vnorm = v / ||v||.
Vector Dot Product
The dot product of two vectors is the sum of the products respective components, this results in a scalar. a·b = a1b1, ... , anbn.
The dot product is equal to the product of the magnitude of the vectors and the cosine of the angle between the vectors. a·b = ||a|| ||b|| cos θ.
The angle between two vectors is. θ = acos(a·b / ||a|| ||b|| )
If both vectors is unit vectors the divide is not needed so it's θ = acos(a·b)
If we only care about the relative orientation about the vectors the acos can be skipped and only look at the sign of the dot product.
+ : The vectors are in the same direction ( θ < 90°).
0 : The vectors are perpendicular.
- : In opposite directions ( 90° < θ < 180°)
Projection one vector onto another
Given two vectors v and n, we can separate v into two values, v|| and vt. They are parallel and perpendicular to n so that v = v|| + vt
v|| is the result of projecting v onto n.
v|| = n (v·n / ||n||2).
Vector cross product
Only works on 3D vectors.
It gives a vector that is perpendicular to the two original vectors.
The length of the vector is equal to the product of the magnitudes of a and b and the sine of the angle
Cross product use × as symbol.
a×b = -(b×a)
a×b = [aybz-azby , azbx - axbz , axby - aybx]
Reference
Practical applications of the dot product - 2017
A faster quaternion-vector multiplication - 2013
Problem Solving Using Vectors - 2013
3D Math Primer for Game Programmers (Vector Operations) - 2011