2024-07-05 15:37:29 +02:00

21 lines
522 B
TypeScript

export type ScaleFunction = Function & {
inverse: Function
}
/**
*
* @param domain example: [0, 100]
* @param range examaple: [0, width]
*/
export function Scale(domain: number[], range: number[]): ScaleFunction {
function Fn(value: number): number {
return ((value - domain[0]) * (range[1] - range[0])) / (domain[1] - domain[0]) + range[0]
}
Fn.inverse = function (value: number): number {
return ((value - range[0]) * (domain[1] - domain[0])) / (range[1] - range[0]) + domain[0]
}
return Fn
}