Russian Qt Forum
Октябрь 02, 2024, 05:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [решено] сетка... кто бы помог...  (Прочитано 2702 раз)
KontAr
Гость
« : Ноябрь 30, 2011, 19:56 »

знает ли кто-нибудь, как реализовать привязку к узлам сетки при рисовании? если можно, ссылки, примеры...
« Последнее редактирование: Декабрь 05, 2011, 16:45 от KontAr » Записан
KontAr
Гость
« Ответ #1 : Декабрь 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);
}

В функцию передается позиция курсора и значение сетки. Возвращается ближайший узел.
« Последнее редактирование: Декабрь 05, 2011, 16:46 от KontAr » Записан
_OLEGator_
Гость
« Ответ #2 : Декабрь 05, 2011, 16:48 »

Код
C++ (Qt)
qRound(X / gridStep);
qRound(Y / gridStep);
Записан
KontAr
Гость
« Ответ #3 : Декабрь 05, 2011, 17:08 »

может у меня что-то криво, но qRound у меня некорректно работает. Оставлю свой топорный вариант
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.064 секунд. Запросов: 20.