crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> зеркальное отображение графика
karabura
  опции профиля:
сообщение 25.6.2009, 11:09
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 23.6.2009
Пользователь №: 843

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




Репутация:   0  


Просмотрел документацию на форуме - про графические представления и координаты. Не могу никак найти способ зеркального отображения
содержимого QGraphicsView. У него же координаты с левого верхнего начинаются, график нужно отобразить зеркально вниз.
Вращение получается, зеркалирование нет. Как лучше сделать, чем воспользоваться?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 25.6.2009, 12:46
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Попробуй scale() с отрицательным значением.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 25.6.2009, 12:58
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(karabura @ 25.6.2009, 12:09) *
Просмотрел документацию на форуме - про графические представления и координаты. Не могу никак найти способ зеркального отображения
содержимого QGraphicsView. У него же координаты с левого верхнего начинаются, график нужно отобразить зеркально вниз.
Вращение получается, зеркалирование нет. Как лучше сделать, чем воспользоваться?

Так матрицу преобразований можно установить.
Нужно по аффинным преобразованиям информацию глянуть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
karabura
  опции профиля:
сообщение 25.6.2009, 13:48
Сообщение #4


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 23.6.2009
Пользователь №: 843

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




Репутация:   0  


Ок, спасибо, буду пробовать. Тяжеловато конечно в аффинных преобразованиях разбираться, ну придёться
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 25.6.2009, 14:23
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(karabura @ 25.6.2009, 14:48) *
Ок, спасибо, буду пробовать. Тяжеловато конечно в аффинных преобразованиях разбираться, ну придёться

Там матрица примитивная. :)
Набери в гугле: "матрица отражения"
или зайти сюда: http://www.intuit.ru/department/graphics/d...3dhlsl/1/3.html
(это первая ссылка по запросу). ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 25.6.2009, 14:50
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Я правильно понимаю?

QMatrix xRefrect(-1.0/*m11*/, 0.0/*m12*/, 0.0/*m21*/, 1.0/*m22*/, 0.0/*dx*/, 0.0/*dy*/);
QMatrix yRefrect(1.0/*m11*/, 0.0/*m12*/, 0.0/*m21*/, -1.0/*m22*/, 0.0/*dx*/, 0.0/*dy*/);


* m11 - горизонтальное растягивание (horizontal scale)
* m22 - вертикальное растягивание (vertical scale)
* m21 - горизонтальный сдвиг (horizontal shearing)
* m12 - вертикальный сдвиг (vertical shearing)

В итоге:
m11 = -1.0 - растягивание в сторону уменьшения (отражение по горизонтали)
m22 = 1.0 - вертикальное растягивание (1.0 - оригинальная высота изображения, без изменений)

m11 = 1.0 - горизонтальное растягивание (1.0 - оригинальная ширина изображения, без изменений)
m22 = -1.0 - вертикальное растягивание в сторону уменьшения (отражение по вертикали)

В итоге приходим к scale(-1.0, 1.0); и scale(1.0, -1.0);

Сообщение отредактировал SABROG - 25.6.2009, 15:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 25.6.2009, 14:55
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(SABROG @ 25.6.2009, 15:50) *
Я правильно понимаю?

QMatrix xRefrect(-1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
QMatrix yRefrect(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);

Я давненько с этим не сталкивался, но очень похоже... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 27.11.2024, 5:37