Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрое отображение без потери экстремуов, рисование графиков 
:(
    Опции темы
zhgutov
Дата 26.4.2005, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



Здравствйте все!

Хочу прояснить один момент: есть массив дикого размера, каждый элемент которого — отсчет на воображаемом графике. Какие «механизмы» следует задействовать, чтобы иметь возможность отображать, скажем, 100000 точек без потери экстремумов с частотой > 30 fps?

Спасибо.
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 26.4.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



zhgutov, а что значит без потери екстремумов , это я так понимаю что бы экстремумы функции были отчетливо видны или как

в любом случае для вывода вам будет неплохо использовать двойную буфферизацию


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
zhgutov
Дата 26.4.2005, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



Цитата
zhgutov, а что значит без потери екстремумов , это я так понимаю что бы экстремумы функции были отчетливо видны или как

Именно так.
Цитата
в любом случае для вывода вам будет неплохо использовать двойную буфферизацию

Двойная буферизация и так используется, но нужно, чтобы все это отображалось очень быстро при любом количестве отсчетов на экране. Такое каким-то образом реализовано, например, в CoolEdit. Интересно, как именно?
Добавлено @ 12:42
Сейчас реализован механизм т.о., что рисуются только минимумы и максимумы для отчсетов, умещающихся в 1 пиксел (этакая гистограмма), но при отображении более 1 часа (16.67 точек/сек) плавность теряется. Всего прорисовывается 7 графиков одновременно.
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 26.4.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



отображаеться оно и так быстро, а вот строиться на буффере долго...

нужна оптимизировать построение, дабы экстремумы не терялись, попробуйте делать их более интенсивным цветом...
Цитата(zhgutov @ 26.4.2005, 12:33)
CoolEdit.
, не пользовался



--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
zhgutov
Дата 26.4.2005, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



Экстремумы отображать другим цветом не надо. Все должно быть «монолитно». Буфер, естественно строится дольше, чем выполняется отображение, но проблема не в этом. Для построения не хватает производительности проца. Нужно при отображении каждого кадра посчитать минимум-максимум для диапазона, умещающегося в одном пикселе. Если этого не делать, то при смещении области отображения на расстояние не кратное количеству точек на пиксел, так или иначе, нужно пересчитать буфер. Программа является измерительной системой и в ней реализован алгоритм следования за последней добавленной точкой. Можно сделать буфер в виде массива поддиапазонов, но тогда будет тормозить поиск. Нужно какое-то другое свежее и интересное решение (Mentos не помогает smile).
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 26.4.2005, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



zhgutov, это че осцилографа типа будет


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
zhgutov
Дата 26.4.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



Типа что-то вроде этого. Более точная метафора — самописец.
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 26.4.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Цитата(zhgutov @ 26.4.2005, 13:22)
самописец.

вот это еще лучше...

а зачем тебе все высчитыват

за определенный момент времени дельта т поступает несколько отсчетов, среди этих нескольких и высчитываешь мах и мин потом сравниваешь их с мах и мин предыдущего периода отображения и предыдущий период сдвигаешь влево на нужное количество отсчетов и маштабируешь по вертикале что бы екстремумы не вылизли, после сдвига дорисовываешь недостающии отсчеты и переключаешь буферы


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
zhgutov
Дата 26.4.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



А потом кто-нить отключит привязку и будет курсором перетаскивать область отображения, менять диапазон...
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 26.4.2005, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



zhgutov, а тут уже думаю как извратиться можно сделать ленту в памяти с отметками изминения макс и мин и выводить регион с ленты......

или строеть на лету но тоже хранить отметки макс и мин, искать не надо будет...


вообщем извращаться можно сколько угодно, подумай, я так понял отрисовывать не долго, вот маштаб на основе макс и мин высчитывать накладно вот и храни метки изминения маштаба...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
zhgutov
Дата 26.4.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



Не масштаб на основе макс и мин, а макс и мин в пределах отсчетов, умещающихся в одном пикселе.

Цитата
zhgutov, а тут уже думаю как извратиться можно сделать ленту в памяти с отметками изминения макс и мин и выводить регион с ленты......


Тогда надо менять позицию на число отсчетов, соответствующих одному пикселю. Можно попробовать...
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 26.4.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



успехов


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
zhgutov
Дата 27.4.2005, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



И все бы хорошо, но в CoolEdit явно это делается иначе. Перед отображением эта программа выполняет операцию, которая называется Building Peaks, ну или что-то вроде этого. При этом все отображается с реактивной скоростью, в любом масштабе, и памяти вроде требует немного...
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
zhgutov
Дата 3.5.2005, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.12.2004

Репутация: 1
Всего: 2



Получилось. Теперь все «летает». smile
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Step
Дата 4.5.2005, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



zhgutov, может поделишься


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.