Изменение размера повернутого объекта GraphicsItem из центра
https://forum.qt.io/topic/67664/solved-resizable-rotatable-graphicsitem
Привет, размер вышеуказанного сообщения изменяется с выбранным дескриптором и изменяется центр boundingRect. Мне нужно сделать то же самое с помощью keyPressEvent, и он изменит размер повернутого boundingRect равномерно от центра, т.е. он увеличит ширину на 1 единицу как с правой, так и с левой стороны, аналогично уменьшится на 1 единицу с обеих сторон и аналогичным образом увеличится / уменьшится высота. Проблема с keyPress в том, что мы не получим
QPointF ptMouseMoveInItemsCoord = mapFromScene(event->scenePos()); //in mouseMoveEvent
поэтому мы знаем, где установить края boundingRect, но у нас этого нет, когда мы увеличиваем / уменьшаем ширину / высоту с обеих сторон равномерно без изменения центра.
Как мы можем найти новые координаты сцены boundingRect, известные старые координаты сцены, угол, ширину и высоту boundingRect, центр должен оставаться таким же?
1 ответ
Вы хотите увеличить ограничивающий прямоугольник на 1 с каждой стороны в координатах элемента (= повернутая система координат)?
Если это так, это должно быть так же просто, как вычислить новую ограничивающую рамку в координатах элемента:
adjustedRect = boundingRect().adjusted(-1,-1, 1, 1);
а затем сопоставьте его с координатами сцены:
QPolygonF poly = mapToScene(adjustedRect);
Многоугольник будет содержать список точек с координатами ограничивающего прямоугольника относительно системы координат сцены.