
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.188] |
![]() |
|
Сообщ.
#1
,
|
|
|
Необходим автоматический расчет минимального и максимального значения оси у графика, а также размер шага.
Хочется как в экселе, например: 1) min=-1.5, max=6.5 - соответственно по оси max=7, а min=-2, шаг оси=1 2) min=-1.5, max=78 - соответственно по оси max=90, а min=-10, шаг оси=10 2) min=-1.5, max=23 - соответственно по оси max=25, а min=-5, шаг оси=5 +включается нулевое значение На входе известна ширина и высота графика в пикселах, min и max значения в графике. Никак не могу сделать толково ... только дробные значения ... |
Сообщ.
#2
,
|
|
|
Через десятичный логарифм
|
Сообщ.
#3
,
|
|
|
округляешь до шага int (min/step)
|
Сообщ.
#4
,
|
|
|
На другом форуме мне более подробно объяснили:
Цитата Входные данные: min - наименьшее значение данных по заданной оси max - наибольшее значение данных по этой же оси M - максимальное допустимое количество шагов на оси графика 1. Определим шаг. Для этого вычислим нажнюю границу для значения шага L = (max - min)/M и подберем такое минимальное значение шага S, которое было бы больше или равно L. Например, для шага из ряда {1, 10, 100, :} нужное значение будет: S = 10^(ceil(log10(L))). 2. Определим границы: Минимальное значение по оси равно S * floor(min/S) Максимальное значение по оси равно S * ceil(max/S) Буду разбираться. |