bezier1
pub fn cubic<T, F>(p0: T, p1: T, p2: T, t: F) -> T where T: Copy + Num + Cast<F>, F: Copy + Num + Cast<T>,