From 552edd3fcdc1cc89b7e2ca62fbd70896c35eb3ed Mon Sep 17 00:00:00 2001 From: Konrad Mohrfeldt <konrad.mohrfeldt@farbdev.org> Date: Thu, 15 Jun 2023 15:55:35 +0200 Subject: [PATCH] feat: add mapToDomain helper function --- src/util.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/util.ts b/src/util.ts index d292a5e2..44d9279d 100644 --- a/src/util.ts +++ b/src/util.ts @@ -142,3 +142,18 @@ export function secondsToDurationString(seconds: number): string { const s = Math.round(seconds % 60) return `${h ? h + 'h ' : ''}${m ? m + 'min ' : ''}${s ? s + 's' : ''}` } + +export function clamp(value: number, min: number, max: number): number { + return Math.min(Math.max(value, min), max) +} + +export function mapToDomain( + value: number, + inputDomain: [number, number], + outputDomain: [number, number], +) { + const [x1, y1] = inputDomain + const [x2, y2] = outputDomain + value = clamp(value, x1, y1) + return ((value - x1) * (y2 - x2)) / (y1 - x1) + x2 +} -- GitLab