package wordcloud.font.scale;
/**
* Created by kenny on 6/30/14.
*/
public class SqrtFontScalar implements FontScalar {
private int minFont;
private int maxFont;
public SqrtFontScalar(int minFont, int maxFont) {
this.minFont = minFont;
this.maxFont = maxFont;
}
@Override
public float scale(int value, int minValue, int maxValue) {
double leftSpan = Math.sqrt(maxValue) - Math.sqrt(minValue);
double rightSpan = maxFont - minFont;
// Convert the left range into a 0-1 range
double valueScaled = (Math.sqrt(value) - Math.sqrt(minValue)) / leftSpan;
// Convert the 0-1 range into a value in the right range.
return (float)(minFont + (valueScaled * rightSpan));
}
@Override
public void reduceBy(int n) {
minFont -= n;
maxFont -= n;
}
}