Russian Qt Forum
Ноябрь 24, 2024, 04:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Scaling в QGraphicsView  (Прочитано 2574 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Июнь 30, 2011, 17:16 »

Возника проблема с масштабированием. Из книги Бланшетт взял пример масштабирование при прокрутки колесика мыши
Код:
void            QEditorView::wheelEvent(QWheelEvent *event)
{
    qreal   numDegrees = event->delta()/8.0;
    qreal   numSteps = numDegrees/15.0;
    qreal   factor =  qPow(1.5,numSteps);
    if(factor>=.4 && factor<=2)
    {
        scale(factor,factor);
    }
    event->accept();
}
Все работает, но одна беда, после того как сделать масштабирование в большую, меньшую сторону - точность указателя мыши в координатах сцены начинает плавать, и она уже перемещается не с точностью до пиксела, а +- погрешность (0.3 или 1.5 к примеру пиксела).
Проблема видна после того, когда при увеличенном масштабе создаю, двигаю и изменяю объекты, при возвращении в исходный масштаб они выглядят кривовато.
На картинке это четко видно.
Сглаживание помогает, но на некоторых картах оно не работает, поэтому нужно что бы не было этих погрешностей. Как этого добиться?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.064 секунд. Запросов: 23.