Sometimes we need to transfer a number from range A to range B
I wrote this in ts
but you can easily change it to your preferred language
hope this save your time.
type Scale = (
number: number,
from: [number, number],
to: [number, number]
) => number;
const scale: Scale = (number, from, to) => {
const stepCost = (to[1] - to[0]) / (from[1] - from[0]);
const startOffset = number - from[0];
const newNumber = startOffset * stepCost + to[0];
return newNumber;
};
scale(5, [0, 10], [0, 100]); // return: 50