Katyshin
@Katyshin

Как написать функцию пересчета значений одной шкалы в другую?

Есть диапазон значений от 0.0 до 1.0, условно базовая шкала значений (предметно это обороты двигателя).

Необходимо значения из этого диапазона преобразовывать к значениям другой шкалы, у которой известны 2 значения, соответствующие значениям базовой шкалы 0.0, 0.2 и 1.0. Нужна функция которая позволит рассчитать все промежуточные значения новой шкалы, от известных значений базовой шкалы. И значения 0 базовой шкалы это всегда 0 итоговой шкалы.
Подойдет линейная функция, и я предполагаю что их тут будет 2, под участки 0-0.2 и 0.2-1.0.

Надеюсь объяснил понятно, пример:
есть значения итоговой шкалы 0.0=0 (нули всегда равны у шкал), 0.2 = 1000 и 1.0 = 6000. Жирным отметил входные значения.
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
На первом интервале
y=x*1000;

На втором
y=1000+(x-0.2)*(6000-1000)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
LaRN
@LaRN
Senior Developer
Через 3 точки можно провести параболу, тогда не придется работать с диапазонами.
Посмотрите например интерполяцию Лагранжа.
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D...

Для вашего кейса Y =1250*X*(X+3.8)

X - Это исходная шкала
Y - Это новая шкала

Y(0) = 0
Y(0.2) = 1000
Y(1) = 6000
Ответ написан
@mayton2019
Ent. Software engineer.
Это в школе называется - построить уравнение прямой по двум точкам.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
АО «НИИМЭ» Зеленоград
от 100 000 до 170 000 руб.
Gradient Москва
от 120 000 руб.
22 нояб. 2019, в 13:46
3000 руб./за проект
22 нояб. 2019, в 13:22
10000 руб./за проект
22 нояб. 2019, в 13:19
100000 руб./за проект