построение больших графиков
От: WiseAlex Беларусь  
Дата: 03.05.06 09:58
Оценка:
Количество точек в графике может достигать сотен миллионов.
Возникло несколько проблем:
1) при отрисовке всего графика или большого диапозона все точки отрисовывать не имеет смысла с точки зрения быстродействия, однако если брать равномерную выборку (например каждую т-ую точку) резкие изменения графика могут пропадать (т.е. неотрисованные точки могут крутые всплески например).
2) в режиме "Автомасштаб графика " необходимо для любого произвольного диапозона определить max и min

Понятно, что для быстродействующего решения этих проблем нужна предварительная обработка данных, но в каком виде я плохо представляю.
Буду благодарен за любую информацию по этому поводу.
--
P.S. А может я вообще не в том направлении двигаюсь?
Re: построение больших графиков
От: Ulenspiegel Россия  
Дата: 03.05.06 10:08
Оценка:
Здравствуйте, WiseAlex, Вы писали:

WA>Количество точек в графике может достигать сотен миллионов.

WA>Возникло несколько проблем:
WA>1) при отрисовке всего графика или большого диапозона все точки отрисовывать не имеет смысла с точки зрения быстродействия, однако если брать равномерную выборку (например каждую т-ую точку) резкие изменения графика могут пропадать (т.е. неотрисованные точки могут крутые всплески например).
WA>2) в режиме "Автомасштаб графика " необходимо для любого произвольного диапозона определить max и min

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

WA>Буду благодарен за любую информацию по этому поводу.
WA>--
WA>P.S. А может я вообще не в том направлении двигаюсь?
Выводить каждую n-ю, при изменении ординаты более чем на deltaY выводить и промежуточные точки ?
Пункт 2) — не совсем понял суть проблемы.
Re[2]: построение больших графиков
От: WiseAlex Беларусь  
Дата: 03.05.06 11:53
Оценка:
Здравствуйте, Ulenspiegel, Вы писали:

U>Выводить каждую n-ю, при изменении ординаты более чем на deltaY выводить и промежуточные точки ?

т.е. мы все равно при каждом выводе полностью анализируем все точки из выводимого диапазона
U>Пункт 2) — не совсем понял суть проблемы.
например выводим диапазон от 0 до 1 функции 5-x. При включении режима автомасштаб сетка по оси Y должна стать от 4 до 5 чтобы показать весь кусок графика максимально развернуто
здесь та же проблема — "в лоб" для нахождения min и max придется анализировать все точки из выводимого диапазона. Когда много точек времени на сканирования всех этих точек может понадобится очень много, поэтому и спрашиваю о методиках предварительной обработки данных
Re: построение больших графиков
От: Рома Мик Россия http://romamik.com
Дата: 03.05.06 12:24
Оценка: 3 (2)
Здравствуйте, WiseAlex, Вы писали:

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

Ну как, искать экстремумы. Я бы вообще хранил свдеения об экстермумомах сразу в виде графиков в масштабе 1:1, 1:2, 1:4 и т.д. и при отрисовке выбирать самый близкий достаточный масштаб. Это конечно некоторый расход памяти (в два раза ровно), но зато графики рисуются быстро.
Re[2]: построение больших графиков
От: Vinni-puh Россия  
Дата: 03.05.06 13:11
Оценка: 2 (1)
РМ>Ну как, искать экстремумы. Я бы вообще хранил свдеения об экстермумомах сразу в виде графиков в масштабе 1:1, 1:2, 1:4 и т.д. и при отрисовке выбирать самый близкий достаточный масштаб. Это конечно некоторый расход памяти (в два раза ровно), но зато графики рисуются быстро.

Тогда ИМХО лучше хранить отдельно вектор максимумов и вектор минимумов в разных масштабах, но масштабы должны следовать пореже: 1:1 — непосредственно значения, а дальше 1:16, 1:256 и т. д. — по два вектора экстремумов. При отрисовке выбирать близжайший более мелкий масштаб. Тогда перерасход памяти только 13%.
Re[3]: построение больших графиков
От: WiseAlex Беларусь  
Дата: 03.05.06 13:22
Оценка: +1
Здравствуйте, Vinni-puh, Вы писали:

VP>Тогда ИМХО лучше хранить отдельно вектор максимумов и вектор минимумов в разных масштабах, но масштабы должны следовать пореже: 1:1 — непосредственно значения, а дальше 1:16, 1:256 и т. д. — по два вектора экстремумов. При отрисовке выбирать близжайший более мелкий масштаб. Тогда перерасход памяти только 13%.

Идея интересная и достаточно просто реализеумая. наверное по этому пути и пойду — спасибо
Re[3]: построение больших графиков
От: WiseAlex Беларусь  
Дата: 03.05.06 13:26
Оценка:
Здравствуйте, Vinni-puh, Вы писали:

РМ>>Ну как, искать экстремумы. Я бы вообще хранил свдеения об экстермумомах сразу в виде графиков в масштабе 1:1, 1:2, 1:4 и т.д. и при отрисовке выбирать самый близкий достаточный масштаб. Это конечно некоторый расход памяти (в два раза ровно), но зато графики рисуются быстро.


VP>Тогда ИМХО лучше хранить отдельно вектор максимумов и вектор минимумов в разных масштабах, но масштабы должны следовать пореже: 1:1 — непосредственно значения, а дальше 1:16, 1:256 и т. д. — по два вектора экстремумов. При отрисовке выбирать близжайший более мелкий масштаб. Тогда перерасход памяти только 13%.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.