Самый простой способ привязки к сетке с фиксированным масштабом - что-то вроде:
snap_x = scale * round(x / scale)
snap_y = scale * round(y / scale)
, где масштаб - это размер вашей сетки, например, 10 пикселей.
Если точки неравномерныраспределить, а затем найти ближайший на основе расстояния (или квадрат расстояния по соображениям эффективности).