Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: KontAr от Ноябрь 30, 2011, 19:56



Название: [решено] сетка... кто бы помог...
Отправлено: KontAr от Ноябрь 30, 2011, 19:56
знает ли кто-нибудь, как реализовать привязку к узлам сетки при рисовании? если можно, ссылки, примеры...


Название: Re: сетка... кто бы помог...
Отправлено: KontAr от Декабрь 05, 2011, 16:44
сам задал, сам и отвечу, может поможет кому:
Код:
QPointF GraphicsView::nodeBy(QPointF p, int gridStep)
{
    int X = p.x();
    int Y = p.y();

    X = X % gridStep;
    if (X <= gridStep/2)
        X = p.x() - X;
    else
        X = p.x() + gridStep - X;

    Y = Y % gridStep;
    if (Y <= gridStep/2)
        Y = p.y() - Y;
    else
        Y = p.y() + gridStep - Y;

    return QPointF(X, Y);
}

В функцию передается позиция курсора и значение сетки. Возвращается ближайший узел.


Название: Re: [решено] сетка... кто бы помог...
Отправлено: _OLEGator_ от Декабрь 05, 2011, 16:48
Код
C++ (Qt)
qRound(X / gridStep);
qRound(Y / gridStep);


Название: Re: [решено] сетка... кто бы помог...
Отправлено: KontAr от Декабрь 05, 2011, 17:08
может у меня что-то криво, но qRound у меня некорректно работает. Оставлю свой топорный вариант