Skip to content

Instantly share code, notes, and snippets.

@ulisseslima
Last active October 26, 2020 21:24
Show Gist options
  • Save ulisseslima/7e468854809c9ba67c1d5431748127d7 to your computer and use it in GitHub Desktop.
Save ulisseslima/7e468854809c9ba67c1d5431748127d7 to your computer and use it in GitHub Desktop.
Map one range into another.
/**
* @since 04/07/2013
* @author dvlcube
*/
public class RangeMapping {
/**
* @param n
* value from range A
* @param ra1
* range A, min value
* @param ra2
* range A, max value
* @param rb1
* range B, min value
* @param rb2
* range B, max value
* @return value of n mapped into range B
* @since 04/07/2013
* @author dvlcube
*/
public static double linearTransform(double n, double ra1, double ra2, double rb1, double rb2) {
return (n - ra1) / (ra2 - ra1) * (rb2 - rb1) + rb1;
}
public static double d(String v) {
return Double.valueOf(v);
}
public static void main(String[] args) {
double n = d(args[0]);
double ra1 = d(args[1]);
double ra2 = d(args[2]);
double rb1 = d(args[3]);
double rb2 = d(args[4]);
System.out.println(linearTransform(n, ra1, ra2, rb1, rb2));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment