Changeset 13714
- Timestamp:
- 05/13/08 00:54:43 (2 months ago)
- Location:
- dojox/trunk/charting
- Files:
-
- 2 modified
-
axis2d/Default.js (modified) (2 diffs)
-
scaler/linear.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dojox/trunk/charting/axis2d/Default.js
r13713 r13714 72 72 calculate: function(min, max, span, labels){ 73 73 if(this.initialized()){ return this; } 74 this.min = min; 75 this.max = max; 74 76 this.labels = "labels" in this.opt ? this.opt.labels : labels; 75 77 this.scaler = lin.buildScaler(min, max, span, this.opt); … … 89 91 }), "Math.max(a, b)", 0); 90 92 }else{ 91 var labelLength = Math.ceil(Math.log(Math.max(Math.abs(this.scaler. min),92 Math.abs(this.scaler. max))) / Math.LN10),93 var labelLength = Math.ceil(Math.log(Math.max(Math.abs(this.scaler.bounds.from), 94 Math.abs(this.scaler.bounds.to))) / Math.LN10), 93 95 t = []; 94 if(this.scaler. min < 0 || this.scaler.max< 0){ t.push("-"); }96 if(this.scaler.bounds.from < 0 || this.scaler.bounds.to < 0){ t.push("-"); } 95 97 t.push(dojo.string.rep("9", labelLength)); 96 var precision = Math.floor(Math.log(this.scaler. max - this.scaler.min) / Math.LN10);98 var precision = Math.floor(Math.log(this.scaler.bounds.to - this.scaler.bounds.from) / Math.LN10); 97 99 if(precision > 0){ 98 100 t.push("."); -
dojox/trunk/charting/scaler/linear.js
r13713 r13714 23 23 } 24 24 var lowerBound = findString(kwArgs.fixLower, ["major"]) ? 25 Math.floor( min / majorTick) * majorTick :25 Math.floor(kwArgs.min / majorTick) * majorTick : 26 26 findString(kwArgs.fixLower, ["minor"]) ? 27 Math.floor( min / minorTick) * minorTick :27 Math.floor(kwArgs.min / minorTick) * minorTick : 28 28 findString(kwArgs.fixLower, ["micro"]) ? 29 Math.floor( min / microTick) * microTick :min,29 Math.floor(kwArgs.min / microTick) * microTick : kwArgs.min, 30 30 upperBound = findString(kwArgs.fixUpper, ["major"]) ? 31 Math.ceil( max / majorTick) * majorTick :31 Math.ceil(kwArgs.max / majorTick) * majorTick : 32 32 findString(kwArgs.fixUpper, ["minor"]) ? 33 Math.ceil( max / minorTick) * minorTick :33 Math.ceil(kwArgs.max / minorTick) * minorTick : 34 34 findString(kwArgs.fixUpper, ["micro"]) ? 35 Math.ceil(max / microTick) * microTick : max, 36 majorStart = (findString(kwArgs.fixLower, ["major"]) || !majorTick) ? 37 lowerBound : Math.ceil(lowerBound / majorTick) * majorTick, 38 minorStart = (findString(kwArgs.fixLower, ["major", "minor"]) || !minorTick) ? 39 lowerBound : Math.ceil(lowerBound / minorTick) * minorTick, 40 microStart = (findString(kwArgs.fixLower, ["major", "minor", "micro"]) || ! microTick) ? 41 lowerBound : Math.ceil(lowerBound / microTick) * microTick, 42 majorCount = !majorTick ? 0 : (findString(kwArgs.fixUpper, ["major"]) ? 43 Math.round((upperBound - majorStart) / majorTick) : 44 Math.floor((upperBound - majorStart) / majorTick)) + 1, 45 minorCount = !minorTick ? 0 : (findString(kwArgs.fixUpper, ["major", "minor"]) ? 46 Math.round((upperBound - minorStart) / minorTick) : 47 Math.floor((upperBound - minorStart) / minorTick)) + 1, 48 microCount = !microTick ? 0 : (findString(kwArgs.fixUpper, ["major", "minor", "micro"]) ? 49 Math.round((upperBound - microStart) / microTick) : 50 Math.floor((upperBound - microStart) / microTick)) + 1, 35 Math.ceil(kwArgs.max / microTick) * microTick : kwArgs.max; 36 37 if(kwArgs.useMin){ min = lowerBound; } 38 if(kwArgs.useMax){ max = upperBound; } 39 40 var majorStart = (!majorTick || kwArgs.useMin && findString(kwArgs.fixLower, ["major"])) ? 41 min : Math.ceil(min / majorTick) * majorTick, 42 minorStart = (!minorTick || kwArgs.useMin && findString(kwArgs.fixLower, ["major", "minor"])) ? 43 min : Math.ceil(min / minorTick) * minorTick, 44 microStart = (! microTick || kwArgs.useMin && findString(kwArgs.fixLower, ["major", "minor", "micro"])) ? 45 min : Math.ceil(min / microTick) * microTick, 46 majorCount = !majorTick ? 0 : (kwArgs.useMax && findString(kwArgs.fixUpper, ["major"]) ? 47 Math.round((max - majorStart) / majorTick) : 48 Math.floor((max - majorStart) / majorTick)) + 1, 49 minorCount = !minorTick ? 0 : (kwArgs.useMax && findString(kwArgs.fixUpper, ["major", "minor"]) ? 50 Math.round((max - minorStart) / minorTick) : 51 Math.floor((max - minorStart) / minorTick)) + 1, 52 microCount = !microTick ? 0 : (kwArgs.useMax && findString(kwArgs.fixUpper, ["major", "minor", "micro"]) ? 53 Math.round((max - microStart) / microTick) : 54 Math.floor((max - microStart) / microTick)) + 1, 51 55 minorPerMajor = minorTick ? Math.round(majorTick / minorTick) : 0, 52 56 microPerMinor = microTick ? Math.round(minorTick / microTick) : 0, 53 57 majorPrecision = majorTick ? Math.floor(Math.log(majorTick) / Math.LN10) : 0, 54 58 minorPrecision = minorTick ? Math.floor(Math.log(minorTick) / Math.LN10) : 0, 55 scale = span / ( upperBound - lowerBound);59 scale = span / (max - min); 56 60 if(!isFinite(scale)){ scale = 1; } 61 57 62 return { 58 63 bounds: { 59 64 lower: lowerBound, 60 upper: upperBound 65 upper: upperBound, 66 from: min, 67 to: max 61 68 }, 62 69 major: { … … 81 88 microPerMinor: microPerMinor, 82 89 scale: scale, 83 span: span, 84 min: min, 85 max: max 90 span: span 86 91 }; 87 92 }; … … 96 101 } 97 102 98 // update bounds, if needed 99 var includeZeroFlag = false; 103 // update bounds 104 if("min" in kwArgs){ min = kwArgs.min; } 105 if("max" in kwArgs){ max = kwArgs.max; } 106 if(kwArgs.includeZero){ 107 if(min > 0){ min = 0; } 108 if(max < 0){ max = 0; } 109 } 110 h.min = min; 111 h.useMin = true; 112 h.max = max; 113 h.useMax = true; 114 100 115 if("from" in kwArgs){ 101 116 min = kwArgs.from; 102 h.fixLower = "none"; 103 h.natural = false; 104 }else{ 105 if("min" in kwArgs){ min = kwArgs.min; } 106 includeZeroFlag = true; 117 h.useMin = false; 107 118 } 108 119 if("to" in kwArgs){ 109 max = kwArgs.from; 110 h.fixUpper = "none"; 111 h.natural = false; 112 }else{ 113 if("max" in kwArgs){ max = kwArgs.max; } 114 includeZeroFlag = true; 115 } 116 if(includeZeroFlag && kwArgs.includeZero){ 117 if(min > 0){ min = 0; } 118 if(max < 0){ max = 0; } 120 max = kwArgs.to; 121 h.useMax = false; 119 122 } 120 123 … … 196 199 // loop over all ticks 197 200 var majorTicks = [], minorTicks = [], microTicks = []; 198 while(next <= scaler.bounds. upper+ 1/scaler.scale){201 while(next <= scaler.bounds.to + 1/scaler.scale){ 199 202 if(Math.abs(nextMajor - next) < step / 2){ 200 203 // major tick … … 230 233 }, 231 234 getTransformerFromModel: function(/*Object*/ scaler){ 232 var offset = scaler.bounds. lower, scale = scaler.scale;235 var offset = scaler.bounds.from, scale = scaler.scale; 233 236 return function(x){ return (x - offset) * scale; }; // Function 234 237 }, 235 238 getTransformerFromPlot: function(/*Object*/ scaler){ 236 var offset = scaler.bounds. lower, scale = scaler.scale;239 var offset = scaler.bounds.from, scale = scaler.scale; 237 240 return function(x){ return x / scale + offset; }; // Function 238 241 }