Здравствуйте!
Пишу графическое приложение на 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.
Но в этом случае центр улетает совсем не туда куда надо, помогите, пожалуйста, в математике вроде не дуб, но не выходит совсем..