a
10 мая 2018 г. 15:16

Расталкивание квадратов

QGraphicsScene

Расталкивание квадратов при перетаскивание квадрата.
Хотел поинтересоваться, можно ли реализовать? Если да - то куда капнуть? :)

2
Вопрос задан по статьеQt/C++ - Урок 023. Перетаскивание QGraphicsItem на QGraphicsScene мышью

Вам это нравится? Поделитесь в социальных сетях!

2
Evgenii Legotckoi
  • 10 мая 2018 г. 15:27

Да, реализовать можно.


Копать нужно в сторону обнаружения коллизий. Например, в этой статье есть примеры получения пересекающихся на графической сцене объектов через метод collidingItems().

В том примере, по которому вы задаёте вопрос, можно проверять пересечение с другими объектами в методе mouseMoveEvent . И изменять положение других объектов с которыми у вас есть пересечение так, чтобы они отъезжали от перетаскиваемого объекта.
Но при этом нужно сразу проверять на столкновение и те объекты, которые уже разъехались от перетаскиваемого объекта. Единственной сложностью будет возможное возникновение циклических зависимостей при расталкивании объектов. Но весь масштаб проблемы можно будет понять уже во время тестирования.
    a
    • 10 мая 2018 г. 17:47

    Понял, спасибо за ответ.

      Комментарии

      Только авторизованные пользователи могут публиковать комментарии.
      Пожалуйста, авторизуйтесь или зарегистрируйтесь