crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Поворот объекта QGraphicsItem
jojahti
  опции профиля:
сообщение 29.8.2009, 20:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 28.8.2009
Пользователь №: 1030

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вообщем есть метод rotate(), но он прибавляет угол к текущему углу поворота. А мне нужно указать угол элементу сцены напрямую, тоесть поворачивать по желанию в заданные положения, независимо от его текущего угла поворота .
Возможно есть какой-то стандартный метод для этого? :clapping:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.8.2009, 21:51
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


jojahti, этот смайлик означает "Браво!"
:)

Цитата(jojahti @ 30.8.2009, 0:39) *
Вообщем есть метод rotate(), но он прибавляет угол к текущему углу поворота.
ну текущее преобразование можно определить.

См. русский перевод функции void QGraphicsItem::rotate ( qreal angle ) может проще будет найти нужную комбинацию
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
jojahti
  опции профиля:
сообщение 30.8.2009, 7:56
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 28.8.2009
Пользователь №: 1030

Спасибо сказали: 0 раз(а)




Репутация:   0  


Litkevich Yuriy
Цитата
jojahti, этот смайлик означает "Браво!"

Ну именно это я и кричал будущим ээ... отвечателям. <_<

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

А как насчёт универсальной матрицы преобразования, нет там поворота относительно начального положения?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
jojahti
  опции профиля:
сообщение 30.8.2009, 9:52
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 28.8.2009
Пользователь №: 1030

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ну вообщем я так реализовал.

Ключи:
0 - 0
1 - 90
2 - 180
3 - 270

d - выбираемое направление. dir - старое направление.

void someclass::direction(int d)
     { rotate((d-dir)*-90);
        dir = d;                    }


Можно конечно и без ключей, если они не нужны. 8)
P.S. и когда только 20ть сообщений наберётся. :huh:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.8.2009, 12:46
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(jojahti @ 30.8.2009, 11:56) *
А как насчёт универсальной матрицы преобразования, нет там поворота относительно начального положения?
я с Грфическим Представлением не работал, да и с матрицами преобразования.
Но я думаю, что всегда можно узнать текущее преобразование и к нему добавлять недостающий угол поворота. Надо просто с этими матрицами разобраться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kamre
  опции профиля:
сообщение 31.8.2009, 1:59
Сообщение #6


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 18.1.2008
Из: N-sk
Пользователь №: 73

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(jojahti @ 30.8.2009, 0:39) *
поворачивать по желанию в заданные положения, независимо от его текущего угла поворота .
Возможно есть какой-то стандартный метод для этого?

void QGraphicsItem::setTransform ( const QTransform & matrix, bool combine = false )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 19:47