pub trait Lerp {
fn lerp(self, end: Self, percent: f32) -> Self;
}
calculate the point at percent between self and end
e.g. 10.lerp(20, 0.5) returns 15 and
10.lerp(20, 0.1) returns 11
internally the values are cast as f32 and rounded before being returned