То, что вы описываете, называется линейной интерполяцией .
В общем случае предположим, что у вас есть значение c
между a
и b
, и вы хотите значение x
между 0 и 1, которое основано на относительном положении c
между a
и b
. Уравнение для x
выглядит следующим образом:
x := (c - a) / (b - a)
Итак, если у вас есть значение от 10 до 15 (скажем, 11), и вы хотите значение от 0 до 1, вы вводите значения в уравнение выше:
x := (11 - 10) / (15 - 10)
x := 1/5
Другими словами, 11 составляет одну пятую пути от 10 до 15.
Еще более общий случай (когда у вас есть значение c
между a
и b
и вы хотите значение x
между y
и z
), x
вычисляется следующим образом :
x := (c - a) * (z - y) / (b - a) + y
В вашем случае z = 1
и y = 0
.