crossplatform.ru

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

za-ek
  опции профиля:
сообщение 13.7.2012, 12:16
Сообщение #1


Новичок


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

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




Репутация:   0  


Здравствуйте!
Пишу графическое приложение на Qt 4.6, замучался с перемещением центра.. Имеется QGraphicsScene и QGraphicsView.
Задача.
При приближении и отдалении сцены необходимо, что бы под мышкой остались те же координаты, т.е., пример :
Центр сцены расположен в точке {0;0}, мышь находится в точке {-20;-20} (в системе координат сцены), теперь функцией QGraphicsView::scale(scaleFactor,scaleFactor) приближаю сцену, центр остаётся на месте, следовательно, точка под мышью съезжает, она станет {-16,-16}, есть три системы координат:
1. QGraphicsScene (x вправо, y вниз, центр посередине)
2. QGraphicsView (x вправо, y вниз, центр в верхнем левом углу)
3. Система координат центра сцены (x влево, y вверх)

Я перепробовал уже тучу вариантов, по идее, должно быть так :
Центр должен быть смещён на величину смещения мыши относительно 3й системы координат + смещение центра 1й системы координат, умноженное на scaleFactor.
Но в этом случае центр улетает совсем не туда куда надо, помогите, пожалуйста, в математике вроде не дуб, но не выходит совсем..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 7:52