Цитата(Petrovich @ Jan 28 2011, 23:43)

Это понятно, но мне нужен общий принцип, мне не только 350 точек нужно отобразить, а например 3323, 561, 305... в общем любое кратное и не кратное 300мстам точкам экрана
Извините, принцип думал из примера понятен. Поясню как думаю. Делим нацело ко-во точек которое нужно отобразить (а) на количество пикселей экрана где это отображается ( B ) - пусть получается m. Далее смотрим остаток от целочисленного деления ( a mod b ).
Если ноль - группируем исходные точки в блоки по m и к каждому блоку применяем алгоритм (мин-макс, усреднение и т.д.).
Группировка такая получается (по кол-ву точек в блоке): m, m, m,.....,m ; т.е. в вашем случае 300 раз (300 блоков) по m элементов.
Если не ноль - то находим как часто "размазываемые" точки должны появляться в блоках, т.е. делим ( a mod B ) на b - результат float . Пусть получается С, 0<C<1. Далее группируем исходные точки в блоки, но уже не по m, а следующим образом.
1 Группируем блок из m точек,
2 Производим операцию d=(d+c);
3 Если d>1, то: {d=d-1 и следующий блок будет из m+1 точек}, иначе {следующий блок из m точек}
4 к шагу 2
Например: 561 точка.
561/300=1, (561 mod 300)=261, C=261/300=0,87
Группируем блоки:
1 эл-т ;d=0+0,87=0,87
1 эл-т; d=0,87+0,87=1,74; d=1,74-1=0,74;
2 эл-та; d=0,74+0,87 = 1,61; d=1,61-1=0,61;
2 эл-та; d=0,61+0,87 = 1,48; d=1,48-1=0,48;
....
И так у вас должно получиться 300 блоков (300 строчек) с разным ко-вом элементов в блоке.
Ну в последнем блоке может получиться (возможно) m-1 или m+2 элемента - надо думать а неохота уже
Кол-во эл-тов в блоках будет отличаться на 1. Далее обрабатываем каждый блок таким же алгоритмом (мин-макс, среднее и т.д.) и отображаем 300 точек.