Changeset 19821
- Timestamp:
- 11/25/15 22:20:33 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/plot/applyoptions.js
r19800 r19821 142 142 var cdivisions = cheight/4; 143 143 var color; 144 var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid')); 145 ccanvas.css({'position':'relative','top':((canvassize-cheight)/-2).toFixed(2)+'px'}); 144 var cheightoffset = options.getfieldvalue('colorbarfontsize',16); 145 var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid')); 146 ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'}); 146 147 var ccontext = ccanvas[0].getContext('2d'); 147 for (var i = 0; i < cdivisions; i++) { 148 var cindex= Math.floor(i / cdivisions * (colorbar.length - 1)); 149 color = colorbar[(colorbar.length - 1) - cindex]; 150 color = [Math.round(color[0] * 255), Math.round(color[1] * 255), Math.round(color[2] * 255)]; 151 ccontext.fillStyle = 'rgba(' + color.toString() + ',1.0)'; 152 ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions)); 153 } 148 var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight); 149 for (var i = 0; i < colorbar.length; i++) { 150 color = colorbar[colorbar.length-i-1]; 151 color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)]; 152 cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)'); 153 } 154 ccontext.fillStyle=cgradient; 155 ccontext.fillRect(0,cheightoffset/2,cwidth,cheight); 156 //Draw colorbar border 157 ccontext.beginPath(); 158 ccontext.lineWidth='1'; 159 ccontext.strokeStyle='black'; 160 ccontext.rect(0,cheightoffset/2,cwidth,cheight); 161 ccontext.stroke(); 154 162 //Set colorbar lables 155 var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>');156 clabels.css({'position':'relative','width':'auto','vertical-align':'top','height':String(cheight)+'px','list-style-type':'none','display':'inline-table','top':((canvassize-cheight)/2).toFixed(2)+'px','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px','font-size':String(options.getfieldvalue('colorbarfontsize',16))+'px','color':String(options.getfieldvalue('FontColor','black'))});157 clabels.insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');158 163 var labels = []; 159 164 var cdivisions = 8; 160 165 var caxisdelta = caxis[1] - caxis[0]; 161 166 var clabelitem; 162 163 167 if (options.exist('log')) { 164 //logvalue=options.getfieldvalue('log');165 //set(c,'YTick',log(tick_vals)./log(logvalue));166 168 for (var i = cdivisions; i >= 0; i--) { 167 labels[i] = (caxisdelta*i/cdivisions+caxis[0]).toPrecision(3); 169 if (caxisdelta*i/cdivisions==min) { 170 labels[i] = (caxis[0]).toPrecision(3); 171 } 172 else { 173 labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(3); 174 } 168 175 } 169 176 } else { 170 177 for (var i = cdivisions; i >= 0; i--) { 171 labels[i] = (caxisdelta* i/cdivisions+caxis[0]).toPrecision(3);178 labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(3); 172 179 } 173 180 } 174 181 for (var i = cdivisions; i >= 0; i--) { 175 var clabelitem = $('<li><div>'+labels[i]+'</div></li>') 176 clabelitem.css({'display':'table-row'}); 177 clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'}); 178 clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels'); 182 var y = i/cdivisions*cheight+cheightoffset/2; 183 var x = 0.2*cwidth; 184 ccontext.beginPath(); 185 ccontext.moveTo(0,y); 186 ccontext.lineTo(x,y); 187 ccontext.moveTo(cwidth-x,y); 188 ccontext.lineTo(cwidth,y); 189 ccontext.stroke(); 190 ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial'; 191 ccontext.fillStyle='black'; 192 ccontext.textAlign='left'; 193 ccontext.fillText(labels[i],cwidth+x,y+cheightoffset/2); 194 179 195 } 180 196 /* //{{{
Note:
See TracChangeset
for help on using the changeset viewer.