📄 rootscale.as
字号:
package flare.scale
{
import flare.util.Maths;
import flare.util.Strings;
/**
* Scale that performs a root transformation of the data. This could be a
* square root or any arbitrary power.
*/
public class RootScale extends QuantitativeScale
{
private var _pow:Number = 2;
/** The power of the root transform. A value of 2 indicates a square
* root, 3 a cubic root, etc. */
public function get power():Number { return _pow; }
public function set power(p:Number):void { _pow = p; }
/**
* Creates a new RootScale.
* @param min the minimum data value
* @param max the maximum data value
* @param base the number base to use
* @param flush the flush flag for scale padding
* @param labelFormat the formatting pattern for value labels
*/
public function RootScale(min:Number=0, max:Number=0, base:Number=10,
flush:Boolean=false, pow:Number=2,
labelFormat:String=Strings.DEFAULT_NUMBER)
{
super(min, max, base, flush, labelFormat);
_pow = pow;
}
/** @inheritDoc */
public override function get scaleType():String {
return ScaleType.ROOT;
}
/** @inheritDoc */
public override function clone():Scale {
return new RootScale(_dmin, _dmax, _base, _flush, _pow, _format);
}
/** @inheritDoc */
protected override function interp(val:Number):Number {
if (_pow==2) return Maths.invSqrtInterp(val, _smin, _smax);
return Maths.invRootInterp(val, _smin, _smax, _pow);
}
/** @inheritDoc */
public override function lookup(f:Number):Object {
if (_pow==2) return Maths.sqrtInterp(f, _smin, _smax);
return Maths.rootInterp(f, _smin, _smax, _pow);
}
} // end of class RootScale
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -