1 34 35 package org.krysalis.jcharts.axisChart.axis.scale; 36 37 38 import org.krysalis.jcharts.axisChart.axis.scale.ScaleCalculator; 39 40 41 46 public class AutomaticScaleCalculator extends ScaleCalculator 47 { 48 49 52 public AutomaticScaleCalculator() 53 { 54 55 } 56 57 58 62 public void computeIncrement() 63 { 64 double powerOfTen = Math.pow( 10.0d, Math.abs( ( double ) super.getRoundingPowerOfTen() ) ); 65 66 double range; 67 68 69 if( ( super.getMinValue() >= 0 ) || ( super.getMaxValue() < 0 ) ) 71 { 72 range = Math.max( super.getMaxValue(), -super.getMinValue() ); 73 74 super.increment = range / ( super.getNumberOfScaleItems() - 1 ); 75 this.roundTheIncrement( powerOfTen ); 76 77 if( super.getMinValue() >= 0 ) 78 { 79 super.setMinValue( 0.0d ); 80 super.setMaxValue( super.increment * super.getNumberOfScaleItems() ); 81 } 82 else 83 { 84 super.setMaxValue( 0.0d ); 85 super.setMinValue( -( super.increment * super.getNumberOfScaleItems() ) ); 86 } 87 } 88 else 90 { 91 super.setMinValue( super.round( super.getMinValue(), powerOfTen ) ); 92 93 if( super.getRoundingPowerOfTen() > 0 ) 95 { 96 super.setMinValue( super.getMinValue() - powerOfTen ); 97 } 98 else 99 { 100 super.setMinValue( super.getMinValue()- ( 1 / powerOfTen ) ); 101 } 102 103 range = super.getMaxValue() - super.getMinValue(); 106 107 super.increment = range / ( super.getNumberOfScaleItems() - 1 ); 108 super.roundTheIncrement( powerOfTen ); 109 110 super.setMaxValue( super.getMinValue() + ( this.increment * super.getNumberOfScaleItems() ) ); 112 } 113 } 114 115 116 174 175 176 184 } 185 | Popular Tags |