MATLAB Answers

Reverse y Coordinate Obtained Using get(handles.axesImage, 'CurrentPoint')

2 views (last 30 days)
Jeff on 9 Sep 2011
Hi everyone,
I have code that obtains the [x,y] coordinates of a mouse click from an axes plot (get(handles.axesImage, 'CurrentPoint')). The problem is, the origin for the get coordinates is the top left corner of the axes plot, but I want the origin to be the bottom left corner. I've tried setting the YDir property to reverse, but this doesn't work. Alternatively, how do I get the length of the axes in units of coordinates? I could reverse the y coordinate in brute force fashion if I knew how to do this. Why on earth would the origin be set to the top left to begin with? I understand that it's conducive to plotting matrices, but from a graphical standpoint it's more intuitive thinking that the bottom left is the origin.


Sign in to comment.

Accepted Answer

Jan on 9 Sep 2011
It is the other way around in MATLAB: Plotting matrices start in the bottom left corner, while images get the reverse order and start in the top left corner. Therefore you need to set the YDir to 'normal', not to 'reverse'.
You can get the length of the axes by reading the XLim and YLim properties.

  1 Comment

Jeff on 10 Sep 2011
Thanks Jan, the XLim and YLim properties did the job.
I tried changing YDir to normal and it doesn't help.

Sign in to comment.

More Answers (0)

Sign in to answer this question.