void Ball::snap(double precision) { double prev, next; double x_matissa, y_matissa; x_matissa = x - floor(x); y_matissa = y - floor(y); for (next = 0; next < x_matissa; next += precision) prev = next; x = floor(x) + ((x_matissa > (prev + precision / 2)) ? next : prev); prev = 0; for (next = 0; next < y_matissa; next += precision) prev = next; y = floor(y) + ((y_matissa > (prev + precision / 2)) ? next : prev); }