Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перемещение отдельного графика в TeeChart по оси Y
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
katmani
Всем Привет!

Есть ли стандартные средства перемещения и масштабирования отдельных графиков в ТеeChart?
С масштабированием группы графиков (например графики Series1, Series2, Series3 входящих в один Chart1) , проблем нет, меняются минимумы и максимумы по оси-Y у Chart1, и они и двигаются и масштабируются быстро.
Но нужно сдвинуть только один, например красный сдвинуть вверх, но чтобы зеленый остался на месте:


Понятно что можно математически:
Код
for(int i=0;i<Chart1->Series[1]->Count()-1;i++)
Chart1->Series[1]->YValues->Value[i]+=Y;

Но при больших графиках, например по оси-X 690тысяч точек, такой алгоритм откровенно тормозит.
А если масштабировать, т.е. умножать на какойто коэффициент, то могут начальные данные портится (исходные значения не сохраняются), а очищать Series1 заполнять его из какого-то массива с умножением на коэффициент тоже не быстро будет.
Уже два дня копаю TeeChart на эту тему, в нем много всего, но нужное не могу найти.
Может типа какая нибудь локальная система координат для каждого отдельного Series?

Есть еще один вопрос, по поводу стандартного масштабирования в TeeChart, например есть такой график:

он имеет пики 1,2,3, они очень тоненькие, но при отдалении зума они сохраняются, видно на нижнем графике, и изза этого создается впечатление что сигнал на нижнем графике сильно зашумлен, хотя там всего маленькие иголочки были. Это похоже как в осциллографе есть режим PeakDetected, но его в осциллографе можно выключить и эти тонкие пики на отдаленном по зуму сигнале отображаться не будут.
Вот вопрос: как в TeeChart тоже отключить этот режим PeakDetected, т.е. чтобы на отдаленном отображении графика эти иголочки вообще не отображались ?
Вот еще картинка для примера:

Может нестандартными средствами можно такое скрыть (без использования фильтра LowPass) ?
k155la3
Цитата
Но при больших графиках, например по оси-X 690тысяч точек, такой алгоритм откровенно тормозит.

Тормоз появляется при большом объеме данных, которые надо постоянно обрабатывать при отображении на экране.
Вопрос, зачем их обрабатывать постоянно, ведь они не изменяются ? (по крайней мере основная подавляющая их часть)
Перед отображением информации сделайте ее предв. обработку, наподобие индексации и фильтрации с формированием файлов "ускоренных" индексов, меток итд . (например, для каждого значения масштаба отображения). Тогда "тормоз" будет один раз, при первой загрузке и сканировании массива, а при масштабировании можно пользоваться ускряющими сформированными "индексными" файлами.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.