![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
za-ek |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 12.7.2012 Пользователь №: 3448 Спасибо сказали: 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. Но в этом случае центр улетает совсем не туда куда надо, помогите, пожалуйста, в математике вроде не дуб, но не выходит совсем.. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.7.2025, 7:52 |