use cos^2(x) for excentuated motion
work in progress for snap() fn