|
Отображение большого колличества точек на маленьком экране |
|
|
|
 |
Ответов
|
Nov 26 2010, 20:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(Petrovich @ Nov 26 2010, 23:23)  Господа, есть задача, помогите пожалуйста решить. Есть выборка сигнала длинной 10000 семплов. Всю эту выборку нужно отобразить на экране длинной в 300 точек. Как это сделать так, что бы из исходной выборки не были выкинуты характерные максимумы и минимумы? При этом алгоритм должен быть не ресурсоемким... Вроде все логично, делал так: разбивал на блоки по 10000/300 семплов, в каждом искал min,max рисовал вертикальную линию от min до max, при этом х-координата линии равна номеру блока. В моем случае было быстрее, чем на каждый семпл ставить точку с координатой (trunc (x/(10000/300)),y) (здесь х-номер отсчета, у - значение)
Сообщение отредактировал alexPec - Nov 26 2010, 20:44
|
|
|
|
|
Jan 28 2011, 20:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(Petrovich @ Jan 28 2011, 22:18)  С отображением большого количества точек получилось все хорошо, Но сейчас задача немного изменилась. Как правильно отобразить например 350 или любое не кратное значение на экране размером 300. Как тут быть? Это вроде называется ресамплинг, но четкого описания алгоритма не нашел. Кто нибудь знает как это делается корректно? А зачем Вам ресамплинг? У Вас точек на реальную горизонтальную координату по любому >1. Так эти 50 лишних точек равномерно распределить по 300. Получим такую картину: 5 точек ставим как они есть, 6-ю, 7-ю - колдонуть как нибудь (ну или тот же мин-макс или среднее или еще чего, то есть сделать из 2-х одну), затем снова 5 точек как есть, снова 2 точки в 1 слепленные. Получится 50 точек более-менее равномерно размазаны по графику. Конечно линейность представления результата пострадает, но если это не принципиально - гораздо менее затратно по ресурсам чем ресамплинг. Кстати если при слеплении мин-макс использовать, все мин и макс остаются на графике
Сообщение отредактировал alexPec - Jan 28 2011, 20:32
|
|
|
|
|
Jan 28 2011, 20:43
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 2-06-05
Из: Днепропетровск
Пользователь №: 5 658

|
Цитата(alexPec @ Jan 28 2011, 23:31)  А зачем Вам ресамплинг? У Вас точек на реальную горизонтальную координату по любому >1. Так эти 50 лишних точек равномерно распределить по 300. Получим такую картину: 5 точек ставим как они есть, 6-ю, 7-ю - колдонуть как нибудь (ну или тот же мин-макс или среднее или еще чего, то есть сделать из 2-х одну), затем снова 5 точек как есть, снова 2 точки в 1 слепленные. Получится 50 точек более-менее равномерно размазаны по графику. Конечно линейность представления результата пострадает, но если это не принципиально - гораздо менее затратно по ресурсам чем ресамплинг. Кстати если при слеплении мин-макс использовать, все мин и макс остаются на графике Это понятно, но мне нужен общий принцип, мне не только 350 точек нужно отобразить, а например 3323, 561, 305... в общем любое кратное и не кратное 300мстам точкам экрана
|
|
|
|
Сообщений в этой теме
Petrovich Отображение большого колличества точек на маленьком экране Nov 26 2010, 20:23     rezident Цитата(Petrovich @ Jan 29 2011, 00:18) Эт... Jan 28 2011, 20:17      Petrovich Цитата(rezident @ Jan 28 2011, 23:17) Это... Jan 28 2011, 20:23       alexPec Цитата(Petrovich @ Jan 28 2011, 23:43) Эт... Jan 28 2011, 22:07        Petrovich Спасибо, попробую так, вроде все логично... Jan 29 2011, 20:34         Petrovich Все выглядит красиво. Спасибо за совет! Jan 31 2011, 11:45          alexPec Цитата(Petrovich @ Jan 31 2011, 14:45) Вс... Feb 1 2011, 14:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|