mirror of
https://github.com/D4C1-Labs/Flipper-ARF.git
synced 2026-07-28 14:20:24 +00:00
27 lines
521 B
C
27 lines
521 B
C
#include "calc.h"
|
|
|
|
int modulo(int x, int N) {
|
|
return (x % N + N) % N;
|
|
}
|
|
|
|
int wrap(int x, int min, int max) {
|
|
return modulo(x - min, max - min + 1) + min;
|
|
}
|
|
|
|
int wrap_single(int x, int min, int max) {
|
|
if(x < min) return max;
|
|
if(x > max) return min;
|
|
return x;
|
|
}
|
|
|
|
int lerp(int a, int b, float t) {
|
|
return a + (b - a) * t;
|
|
}
|
|
|
|
float inverse_lerp(int a, int b, int x) {
|
|
return (x - a) / (b - a);
|
|
}
|
|
|
|
int map(int a0, int b0, int a1, int b1, int x) {
|
|
return lerp(a1, b1, inverse_lerp(a0, b0, x));
|
|
} |