crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Организация рисования
denmor86
  опции профиля:
сообщение 9.6.2011, 10:34
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

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




Репутация:   0  


Как правильно организовать рисование графика и различных точек на нём?
Т.е нужно нарисовать оси и рисовать точки согласно осям, оси должны меняться при появлении точки вне границ оси.
Правильно ли делать это всё в paintEvent?
Мне кажется что от этого пострадает быстродействие программы, так как точек может быть
очень большое кол-во....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.6.2011, 11:39
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2931
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


много точек не надо, их же можно линиями соединять. Дискретность выбирать в зависимости от масштаба. Рисовать часто тоже не надо, только по вызову paintEvent
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denmor86
  опции профиля:
сообщение 9.6.2011, 11:51
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

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




Репутация:   0  


График у меня будет именно из точек(или других объектов) разного цвета. Приходят на рисование они раз в 45 мсек, кол-во их не ограничено, так как время работы программы может быть более 2-3 суток. Соответственно необходимо продумать что то вроде кольцевого буфера...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.6.2011, 18:02
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(denmor86 @ 9.6.2011, 13:34) *
Правильно ли делать это всё в paintEvent?
само рисование только в нём. Но многое можно кэшировать (в первую очередь статическую информацию). Т.е. рисовать на QPixmap/QImage часть информации, а затем в paintEvent рисовать на виджете сам QPixmap/QImage и поверхнего что-нибудь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.6.2011, 19:33
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2931
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


denmor86, так часто рисовать необязательно, можно раз в 200 мс делать апдейт графики при помощи таймера
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 16.5.2022, 10:49