idamnjanovic@51: function P = thumbPlot(P,x,y,color) idamnjanovic@51: idamnjanovic@51: % Copyright 2008, Ewout van den Berg and Michael P. Friedlander idamnjanovic@51: % http://www.cs.ubc.ca/labs/scl/sparco idamnjanovic@51: % $Id: thumbPlot.m 1040 2008-06-26 20:29:02Z ewout78 $ idamnjanovic@51: idamnjanovic@51: m = size(P,1); idamnjanovic@51: n = size(P,2); idamnjanovic@51: if (size(P,3) == 0) & (length(color) == 3) idamnjanovic@51: % Convert to gray-scale idamnjanovic@51: color = 0.30*color(1) + 0.59*color(2) + 0.11*color(3); idamnjanovic@51: end idamnjanovic@51: idamnjanovic@51: mnx = min(x); % Minimum x idamnjanovic@51: mxx = max(x); % Maximum x idamnjanovic@51: mny = min(y); % Minimum y idamnjanovic@51: mxy = max(y); % Maximum y idamnjanovic@51: dy = (mxy - mny) * 0.1; % Offset on vertical axis idamnjanovic@51: sx = (mxx - mnx) * 1.0; % Scale of horizontal axis idamnjanovic@51: sy = (mxy - mny) * 1.2; % Scale of vertical axis idamnjanovic@51: idamnjanovic@51: if (sx < 1e-6), sx = 1; end idamnjanovic@51: if (sy < 1e-6), sy = 1; end idamnjanovic@51: idamnjanovic@51: for i=1:length(x)-1 idamnjanovic@51: x0 = floor(1 + (n-1) * (x(i ) - mnx) / sx); idamnjanovic@51: x1 = floor(1 + (n-1) * (x(i+1) - mnx) / sx); idamnjanovic@51: y0 = floor( (n-1) * (y(i ) - mny + dy) / sy); idamnjanovic@51: y1 = floor( (n-1) * (y(i+1) - mny + dy) / sy); idamnjanovic@51: idamnjanovic@51: samples = 1+2*max(abs(x1-x0)+1,abs(y1-y0)+1); idamnjanovic@51: c = linspace(0,1,samples); idamnjanovic@51: idx = round((1-c)*x0 + c*x1); idamnjanovic@51: idy = n - round((1-c)*y0 + c*y1); idamnjanovic@51: for j=1:samples idamnjanovic@51: P(idy(j),idx(j),:) = color; idamnjanovic@51: end idamnjanovic@51: end