Доброе утро. Пописываю граф. редактор, решил добавить возможность рисовать с «прилипанием» к точкам сетки. Написал вот что:
QPoint QtnpImage::closest_grid_point(QPoint p)
{
double x,y;
if (p.x() > c_x)
x = (p.x()-c_x)/grid_step;
else if (p.x() < c_x)
x = -1*(c_x-p.x())/grid_step;
else
x = 0;
if (p.y() > c_y)
y = -1*(p.y()-c_y)/grid_step;
else if (p.y() < c_y)
y = (c_y-p.y())/grid_step;
else
y = 0;
return get_grid_point_coordinates(QPoint(round(x),round(y)), grid_step);
}
Помогите позязя!
Если кому-то нужена функция в контексте то она лежит тут: https://github.com/Hackeridze/Qtnp/blob/master/QtnpImage.cpp#L456