На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Шкала оси графика , расчет шага
    Необходим автоматический расчет минимального и максимального значения оси у графика, а также размер шага.
    Хочется как в экселе, например:
    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 значения в графике.
    Никак не могу сделать толково ... только дробные значения ...
      Через десятичный логарифм
        округляешь до шага int (min/step)
          На другом форуме мне более подробно объяснили:

          Цитата
          Входные данные:
          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)


          Буду разбираться.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0209 ]   [ 15 queries used ]   [ Generated: 27.07.25, 13:41 GMT ]