Всем привет, давно не виделись
Начну с того ,что я не уверен ,что мне помогут аффинные преобразования, отчасти поэтому тут и пишу. Опишу задачу, есть некий QGraphicsView на нем естественно есть QGraphicsItem. В этом QGraphicsItem может быть нарисовано все ,что угодно: начиная от обычных прямоугольников и окружностей, заканчивая просто набором линий или набором точек, может даже изображение. Все ,что есть в QGraphicsItem рисуется в QPainterPath ,а потом уже рисуется на самом итеме. Но у каждого итема есть ключевые точки, за которые юзверь может дергать\таскать и так далее, в зависимости от ключевых точек которые дергает юзверь итем должен перерисовывать содержимое(для примера, вот как выглядит итем
http://joxi.ru/VtQdUdg5CbAcaWPuyWw)
красный цвет - ключевые точки
черный цвет - это просто сам итем, его область
зеленый - то что может быть нарисовано
стало быть, если юзверь тянет правую-центральную точку в лево, то итем должен становиться меньше по ширине, а все что нарисовано естественно должно преобразоваться в соответствии с измененными размерами. Раньше для этих изменений я использовал QMatrix , вызывал у него scale() потом этот QMatrix умножал на QPainterPath и получал результат. В принципе это работало, но пользователь же может крайнюю правую точку переместить за левую границу и тогда по идее все содержимое должно будет отразиться по горизонтали. И стало быть scale для это го уже не подходит. Стало быть возникает вопрос, подойдут ли для этого аффинные преобразования? Может можно как то по другому решить данную задачу ?