Skip to content

Instantly share code, notes, and snippets.

@assassinave
Created December 16, 2018 16:50
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save assassinave/23e939608622e8b288a29ace37be3091 to your computer and use it in GitHub Desktop.
Save assassinave/23e939608622e8b288a29ace37be3091 to your computer and use it in GitHub Desktop.
Framer X - Utils Modulate
// Framer X Utils.modulate equivalent
function modulate(value, rangeA, rangeB, limit = false) {
const [fromLow, fromHigh] = rangeA;
const [toLow, toHigh] = rangeB;
const result = toLow + ((value - fromLow) / (fromHigh - fromLow)) * (toHigh - toLow);
if (limit === true) {
if (toLow < toHigh) {
if (result < toLow) {
return toLow;
}
if (result > toHigh) {
return toHigh;
}
}
else {
if (result > toLow) {
return toLow;
}
if (result < toHigh) {
return toHigh;
}
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment