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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Искажения при рисовке примитивов при отображении с кешем DeviceCoordinateCache.  (Прочитано 2134 раз)
alexman
Гость
« : Октябрь 10, 2012, 10:45 »

Есть наследник QGraphicsItem с кешем DeviceCoordinateCache. При рисовке отображаются примитивы: квадратики, крестики... Проблема в том, что один и тот же примитив при рисовке выглядит по разному. Как решить эту проблему?

Примитив на вход передается в виде QPixmap. Сама рисовка:
Код:
                 painter->save();
painter->setWorldMatrixEnabled(false);

const QTransform &transform = painter->transform();
const double dx = m_pixmap.width() * 0.5;
const double dy = m_pixmap.height() * 0.5;

foreach (QPointF point, m_points) {
                        point = transform.map(point);
painter->drawPixmap(point.x() - dx, point.y() - dy, m_pixmap);
}

painter->restore();
« Последнее редактирование: Октябрь 10, 2012, 10:51 от alexman » Записан
Maxz
Гость
« Ответ #1 : Октябрь 10, 2012, 12:02 »

Нужно стереть предыдущий вариант отрисовки примитива - если координаты одинаковые, он накладывается поверх старого
Записан
alexman
Гость
« Ответ #2 : Октябрь 10, 2012, 13:11 »

Нужно стереть предыдущий вариант отрисовки примитива - если координаты одинаковые, он накладывается поверх старого
не то
Записан
alexman
Гость
« Ответ #3 : Октябрь 20, 2012, 11:53 »

Проблема ясна: при скроле происходит дорисовка только новой части. Из-за погрешности на стыке получаются обрезки и выглядит это коряво:(
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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