Если вы говорите о отображении диапазона от 0..m
до min..max
, то, конечно, это всего лишь вопрос:
newval = val * (max - min) / m + min
, что, конечно, позволяет использовать любые целочисленные значения / числа с плавающей точкой, такие как непреднамеренное округление.
Умножение на (max - min) / m
масштабирует его до правильного диапазона, а добавление min
даст правильное нижнее смещение.