www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregcolorbar/private/pr_cbarfaces.m
function pr_cbarfaces(pt,cmap,gr) %GRAPH4D/PRIVATE/PR_CBARFACES Private function % Private function to set up the colorbar faces to the number of % colormap entries and set up cdata nicely. % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. n=size(cmap,1); verty=[0.5:1:(n+0.5)]; if get(gr.colorbar.userange,'Value') ud=get(gr.ctext,'UserData'); if strcmp(ud.limitstyle,'color') | strcmp(ud.limitstyle,'limit') clim=ud.clim; cmax=get(gr.colorbar.maxrange,'UserData'); cmin=get(gr.colorbar.minrange,'UserData'); % convert to actual units ylim=get(gr.colorbar.axes,'YLim'); cmax=clim(1)+(clim(2)-clim(1))*(cmax-ylim(1))/(ylim(2)-ylim(1)); cmin=clim(1)+(clim(2)-clim(1))*(cmin-ylim(1))/(ylim(2)-ylim(1)); sf = (cmax - cmin)/(clim(2)-clim(1)); off = (cmin - clim(1))/(clim(2)-clim(1))*n; verty = (verty * sf) + off; verty(1) = 0.5; verty(end) = n+0.5; end end vertx=zeros(size(verty)); verty=[verty;verty]; vertx=[vertx;(vertx+1)]; vertz=zeros(size(verty)); vertx=vertx(:); verty=verty(:); vertz=vertz(:); faces=[[1:2:(2*n-1)]' , [2:2:(2*n)]' , [3:2:(2*n+1)]' , [4:2:(2*n+2)]']; faces=faces(:,[1 2 4 3]); set(pt,'Vertices',[vertx verty vertz],... 'Faces',faces,... 'FaceVertexCData',cmap);