pub fn look_at_stable(dir: Vector2<S>, flip: bool) -> Matrix2<S> {
        let basis1 = dir.normalize();
        let basis2 = if flip {
            Vector2::new(basis1.y, -basis1.x)
        } else {
            Vector2::new(-basis1.y, basis1.x)
        };
        Matrix2::from_cols(basis1, basis2)
    }
Crate a transformation that will cause `unit_x()` to point at
`dir`. This is similar to `look_at`, but does not take an `up` vector.
This will not cause `unit_y()` to flip when `dir` crosses over the `up` vector.
src/matrix.rs