Mercurial > hg > octave-terminal
changeset 11090:2adf4736dafa
Do not store flipped image property values when x/ydata descends.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Fri, 08 Oct 2010 07:39:31 -0400 |
parents | d761f0dc997e |
children | 5677f3f7b5fa |
files | scripts/ChangeLog scripts/image/image.m scripts/plot/__go_draw_axes__.m |
diffstat | 3 files changed, 30 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2010-10-08 Ben Abbott <bpabbott@mac.com> + + * 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 <jwe@octave.org> * signal/periodogram.m: Fix parse errors.
--- 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)];
--- 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);