Advertisement
Valderman

figure-transformation.cpp

Aug 19th, 2023
912
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. // В целом, этот код отрабатывает, при эвенте движения мыши с зажатой правой кнопкой
  2.  
  3. // Эта точка получается, когда я нажимаю правой кнопкой мыщи на фигуру
  4. QPointF lastRightPressedCoord{m_clickTracker->lastRightMousePressed()};
  5.  
  6. foreach (QGraphicsItem* item, m_parentScene->selectedItems())
  7. {
  8.     QTransform transform;
  9.     QPointF    center = item->sceneBoundingRect().center();
  10.  
  11.     transform.translate(center.x(), center.y());
  12.  
  13.     qreal angle = qAtan2(lastRightPressedCoord.y() - sceneCoord.y(),
  14.                          lastRightPressedCoord.x() - sceneCoord.x());
  15.  
  16.     transform.rotate(angle);
  17.     transform.translate(-center.x(), -center.y());
  18.  
  19.     item->setPos(transform.map(item->pos()));
  20.     item->setRotation(item->rotation() + angle);
  21. }
Tags: qt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement