Как преобразовать число из одного диапозона в другой?

Здравствуйте.
Интересует следующий вопрос, как конвертировать число из одного диапозона(low;hight) в другой(low_2;hight_2)?
Из конкретной задачи, мне нужно как-то брать числа из диапозона -3;3 и преобразовывать их в диапозон 0;100.
Как это сделать?)
  • Вопрос задан
  • 5207 просмотров
Решения вопроса 1
# Положение числа в исходном отрезке, от 0 до 1
relative_value = (value - low) / (high - low)

# Накладываем его на конечный отрезок
scaled_value = low_2 + (high_2 - low_2) * relative_value
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@piva
ProMaks, я просто хочу сказать то же самое о чём уже написал Anatoly Scherbakov, но другими словами.

Тут поможет линейная интерполяция при помощи уравнения прямой. Посмотите, например, на Уравнение прямой, проходящей через две различные точки на плоскости ru.onlinemschool.com/math/library/analytic_geometr...
В том уравнении, x1=-3, x2=3, y1=0, y2=100.

Как только подставите эти значения в уравнение прямой и выразите y (scaled_value), то сразу получите выражение, которое использует Anatoly Scherbakov.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы