14 lines
875 B
TypeScript
14 lines
875 B
TypeScript
export const clamp = (num: number, min: number, max: number) => (Math.min(max, Math.max(min, num)));
|
|
export const isBetween = (num: number, min: number, max: number) => (num >= min && num <= max);
|
|
export const round = (num: number, decimals: number = 0) => Math.round(num * 10 ** decimals) / 10 ** decimals;
|
|
export const ceil = (num: number, decimals: number = 0) => Math.ceil(num * 10 ** decimals) / 10 ** decimals;
|
|
export const floor = (num: number, decimals: number = 0) => Math.floor(num * 10 ** decimals) / 10 ** decimals;
|
|
export const lerp = (start: number, end: number, interpolationRatio: number) => {
|
|
return (1 - interpolationRatio) * start + interpolationRatio * end;
|
|
};
|
|
|
|
// Fractional values cause blurry text & canvas. Round to even to keep whole numbers while centering
|
|
export function roundToNearestEven(value: number) {
|
|
return Math.round(value / 2) * 2;
|
|
}
|