public static float projection(VectorF a, VectorF b) { if (b.isZero()) { return(0.0f); } return((a.x * b.x + a.y * b.y) / b.length()); }