Как написать функцию пересчета значений одной шкалы в другую? Есть диапазон значений от 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. Жирным отметил входные значения.
Для этого можно написать функцию на языке программирования. Например, на Python это может выглядеть так:
def scale_conversion(value, scale_min_1, scale_max_1, scale_min_2, scale_max_2): if value < scale_min_1 or value > scale_max_1: return None range_1 = scale_max_1 - scale_min_1 range_2 = scale_max_2 - scale_min_2 if value <= scale_min_1 + 0.2 * range_1: return scale_min_2 + (value - scale_min_1) * 0.2 * range_2 / range_1 else: return scale_min_2 + (value - scale_min_1) * range_2 / range_1 # Пример использования value_1 = 0.0 value_2 = 0.2 value_3 = 1.0 converted_value_1 = 0 converted_value_2 = 1000 converted_value_3 = 6000 new_value = 0.5 # Пример значения на базовой шкале result = scale_conversion(new_value, value_1, value_3, converted_value_1, converted_value_2) print(result)
Эта функция принимает значение на базовой шкале, а также минимальные и максимальные значения на обеих шкалах. Затем она выполняет линейное преобразование значения в соответствии с заданными значениями на новой шкале.
Для этого можно написать функцию на языке программирования. Например, на Python это может выглядеть так:
def scale_conversion(value, scale_min_1, scale_max_1, scale_min_2, scale_max_2):if value < scale_min_1 or value > scale_max_1:
return None
range_1 = scale_max_1 - scale_min_1
range_2 = scale_max_2 - scale_min_2
if value <= scale_min_1 + 0.2 * range_1:
return scale_min_2 + (value - scale_min_1) * 0.2 * range_2 / range_1
else:
return scale_min_2 + (value - scale_min_1) * range_2 / range_1
# Пример использования
value_1 = 0.0
value_2 = 0.2
value_3 = 1.0
converted_value_1 = 0
converted_value_2 = 1000
converted_value_3 = 6000
new_value = 0.5 # Пример значения на базовой шкале
result = scale_conversion(new_value, value_1, value_3, converted_value_1, converted_value_2)
print(result)
Эта функция принимает значение на базовой шкале, а также минимальные и максимальные значения на обеих шкалах. Затем она выполняет линейное преобразование значения в соответствии с заданными значениями на новой шкале.