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