| 123456789101112131415161718192021222324252627 |
- #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));
- }
|