[Waterloo] Draggable Line?

1 次查看(过去 30 天)
H.A. Camp
H.A. Camp 2012-12-11
I'm finding the Waterloo package very useful to enhance Matlab plots. However, I'm still wrapping my head around how to work directly with some of the Java objects. (Clearly, I'm not a Java programmer!)
For example, I have a very simple GXGraph() plot:
% Generate some fake data
x = linspace(-10, 10, 100); % X Data
y = sin(x./10 .* 2 .* pi); % Y Data
% Plot the Data
gfig = GXFigure(); % Waterloo figure handle
gr1 = subplot(gfig, 1, 1, 1); % Create Graph 1 (gr1)
data1 = scatter(gr1, x, y); % Plot a scatter graph
(Of course, the above example only works after Waterloo has been added to MATLAB's path, and the initial 'waterloo.m' script has been run.)
Now, I'd like to add a line to my graph. I can do this:
% Add a line
annotation(gr1, 'line', [5, 5], [-1, 1]); % Add Line
gr1.getObject().repaint(); % Update Graph
...But I don't know how to:
(1) allow the user to move the line
(2) add a callback to notify me when the line is moving
Ultimately, I'm trying to get something much like Matlab's native imrect() function -- I want to define a resizeable region on my GXGraph.
Any suggestions?

采纳的回答

Image Analyst
Image Analyst 2012-12-11
I don't think that will work. annotation works on the whole figure unfortunately, not on the units of the axes control itself like you'd want. There was a discussion of this within the past two weeks. You can create draggable lines with imdistline() or improfile(), both in the Image Processing Toolbox.
  3 个评论
H.A. Camp
H.A. Camp 2012-12-12
Ah, I see. Thanks, both of you, for the explanation.
I'm not after a moveable cursor so much as moveable regions of interest: we are plotting spectral data and need to limit the processing to a set of specific regions (say, only the leading and trailing edges, only the middle of the spectra, etc.)
Our spectral display quality has gone way up since switching to Waterloo (yay!) but we're having trouble implementing the equivalent of Matlab's imrect() function. I tried overlaying a matlab axis on top of a Waterloo axis, but found that the Z-order of the Waterloo plot is always on top (as you mentioned).
Perhaps we can use a small Matlab axis below the Waterloo plot to control the ROIs. We'll figure something out.
Malcolm Lidierth
Malcolm Lidierth 2012-12-30
The Git repo now includes an imrect-like class: the GJRoi.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by