Сжать график по оси (Х)
- Войдите на сайт для отправки комментариев
Пнд, 11/04/2016 - 09:29
Всем привет!
Вопрос к более опытным кодерам или к тем кто сталкивался с такой задачей!
Чтоб было понятней проиллюстрировал все на картинке ниже.
Есть дисплей для примера 80пикселей шириной, нужно на него вывести график шириной более чем 80.
Если просто выводить первые 80 значений массива данных графика тогда часть графика не влезет.
Пробовал выводить данные реже допустим каждое второе значение тогда график влазит, но появляется проблема теряется вес каждого второго значения и график получается с точностью ½ от исходного, а если нужно еще сильнее ужаться тогда еще больше данных теряется.
Кто подскажет как плавно сжимать график по оси(Х) используя только простые математические операции?
f(x)=sin(2x)
f(x)=sin(2x)
Спасибо, етот вариан напрашивается сам собой, а проще можно без синуса, чтоб только умножение, делнние, сложение, вычитание?
координаты по иксу сожмите в n-раз
координаты по иксу сожмите в n-раз
Как сжать?
(х1+х2)/2 -усреднением?
Весь вопрос в том как это сделать прмитивной математикой?
ну если примитивной, то да. а почему не выводить последовательно?сдвигая на n-пикселей, типо как бегущая строка
Надо было учить математику в школе ...
Чтобы сжать в 2 раза нужно уменьшить число значений в 2 раза - чем меньше будет значений тем меньше места они займут. Тоесть выводить каждое второе значение.
а положение пикселя при этом равно i/2
Надо было учить математику в школе ...
Чтобы сжать в 2 раза нужно уменьшить число значений в 2 раза - чем меньше будет значений тем меньше места они займут. Тоесть выводить каждое второе значение.
а положение пикселя при этом равно i/2
Мне матиматику а вам просто чтение, мой первый пост этот метод описывает, хотите поумничать делайте это по поводу!
(х1+х2)/2 -усреднением?
1. Находите коэффициент масштабирования. Пусть, X1 - исходная ширина, X2 - желеаемая, а K - коэф. масштабирования. Тогда K = X2 / X1.
2. Вывод графика. Xout = Round(X1[i] * K).
График функции построенной по точкам можно прировнять к набору отрезков соединяющих эти точки. Если значения нового массива попадают между точками старого - то можно расчитать новое значение не как усреднение а как точку на прямой - если значение нового массива не точно посередине между значениями старого - то это значение можно счтитать значением на прямой построенной по этим двум точкам.
Это если значения в начальном меняются плавно, но если значения содержат экстреммумы в виде одного значения - то величина этого значения может потеряться.
Откуда берётся функция? Считается или заранее задана массиво точек? От этого всё и зависит.
fogary, NeiroN Спасибо, все попробую в железе.
ЕвгенийП За ранее известен массим точек для графика 500 или более, на дисплей влазит всего 80. Я использовал сдвиг для прокрутки графика и перескакивание чтоб сжать график, теперь попробую методы предложенные выше.
Как сжать?
(х1+х2)/2 -усреднением?
Весь вопрос в том как это сделать прмитивной математикой?