# HG changeset patch # User Ben Abbott # Date 1286537971 14400 # Node ID 2adf4736dafa570d675c93dfbf6d5bfb0be312bb # Parent d761f0dc997e95ab1545d27521d44e0c6feca1d0 Do not store flipped image property values when x/ydata descends. diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2010-10-08 Ben Abbott + + * image/image.m, plot/__go_draw_axes__.m: Do not store flipped image + property values when x/ydata descends. + 2010-10-07 John W. Eaton * signal/periodogram.m: Fix parse errors. diff --git a/scripts/image/image.m b/scripts/image/image.m --- a/scripts/image/image.m +++ b/scripts/image/image.m @@ -119,25 +119,23 @@ xdata = [x(1), x(end)]; ydata = [y(1), y(end)]; - if (diff (xdata) < 0) - xdata = fliplr (xdata); - img = fliplr (img); - elseif (diff (xdata) == 0) - xdata = xdata(1) + [0, size(img,2)-1]; - endif - if (diff (ydata) < 0) - ydata = fliplr (ydata); - img = flipud (img); - elseif (diff (ydata) == 0) - ydata = ydata(1) + [0, size(img,1)-1]; - endif - ca = gca (); tmp = __go_image__ (ca, "cdata", img, "xdata", xdata, "ydata", ydata, "cdatamapping", "direct", varargin {:}); px = __image_pixel_size__ (tmp); + + if (xdata(2) < xdata(1)) + xdata = xdata(2:-1:1); + elseif (xdata(2) == xdata(1)) + xdata = xdata(1) + [0, size(img,2)-1]; + endif + if (ydata(2) < ydata(1)) + ydata = ydata(2:-1:1); + elseif (ydata(2) == ydata(1)) + ydata = ydata(1) + [0, size(img,1)-1]; + endif xlim = xdata + [-px(1), px(1)]; ylim = ydata + [-px(2), px(2)]; diff --git a/scripts/plot/__go_draw_axes__.m b/scripts/plot/__go_draw_axes__.m --- a/scripts/plot/__go_draw_axes__.m +++ b/scripts/plot/__go_draw_axes__.m @@ -453,6 +453,19 @@ have_cdata(data_idx) = false; have_3d_patch(data_idx) = false; + if (img_xdata(2) < img_xdata(1)) + img_xdata = img_xdata(2:-1:1); + img_data = img_data(:,end:-1:1,:); + elseif (img_xdata(1) == img_xdata(2)) + img_xdata = img_xdata(1) + [0, size(img_data,2)-1]; + endif + if (img_ydata(2) < img_ydata(1)) + img_ydata = img_ydata(2:-1:1); + img_data = img_data(end:-1:1,:,:); + elseif (img_ydata(1) == img_ydata(2)) + img_ydata = img_ydata(1) + [0, size(img_data,1)-1]; + endif + [y_dim, x_dim] = size (img_data(:,:,1)); if (x_dim > 1) dx = abs (img_xdata(2)-img_xdata(1))/(x_dim-1); @@ -468,6 +481,7 @@ img_data = [img_data; img_data]; dy = abs (img_ydata(2)-img_ydata(1)); endif + x_origin = min (img_xdata); y_origin = min (img_ydata);