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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Трансформация QGraphicsItem  (Прочитано 4654 раз)
sLiva
Гость
« : Июль 27, 2009, 18:08 »

Все привет!

Народ помогите решить задачу, пол дня убил, думал ничего сложного не возникнет.

Мне нужно трансформировать прямоугольный QGraphicsItem в трапецию, т.е. по сути "сузить" его верхнее ребро.

Копал в сторону QTransform, QMatrix не помогло Грустный

Кто откликнется заранее спасибо.
Записан
lighting
Гость
« Ответ #1 : Июль 27, 2009, 22:12 »

возможно есть варианты и проще, но как минимум можно воспользоваться drawPolygon и пересчитывая координаты добиться нужного искажения.
Записан
sLiva
Гость
« Ответ #2 : Июль 27, 2009, 22:26 »

возможно есть варианты и проще, но как минимум можно воспользоваться drawPolygon и пересчитывая координаты добиться нужного искажения.

Не совсем понял как пересчитывать координаты, QGraphicsItem, который нужно трансформировать, содержит в себе много чего, при трансформации нужно что бы все его внутренности тоже трансформировались, мне кажется нужно каким-то хитрым способом построить матрицу трансформации, или скомбинировать несколько трансформация, но пока нужного эффекта не добился Грустный
Записан
sLiva
Гость
« Ответ #3 : Июль 30, 2009, 18:55 »

Народ, забыл отписаться, на самом деле все это можно сделать, оказалось я копал в правильном направлении, в Qt есть поддержка трансформации в перспективу, добился нужного эффекта следующим кодом:

Код
C++ (Qt)
QTransform transform;
 
transform.translate(rect.width() / 2, 0);
transform.rotate(80, Qt::XAxis);
transform.translate(-rect.width() / 2, 0);

Т.е. просто делаем rotate где задаем последним параметром по какой координате крутить в пространстве.

А в инете наткнулся на пример (http://zrusin.blogspot.com/2006/09/perspective-transformations.html жалко без исходников) там прямоугольную картинку за углы в любом направлении изменяют, хитро высчитывая матрицу трансформации, кстати еслиб кто на в нормальный мануал по этой матрице ткнул было бы совсем офигенно :-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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