I'm creating a GUI using guide, with two axes. I plot a 3d isosurface in one and use drawline on top of a plot in the second. The issue is that I need to be able to rotate the 3d plot and modify the drawline, but after I make the drawline I can no longer rotate the 3d plot. If I replot the 3d plot I can start rotatting it again, but then I can no longer modify the drawline object. Replotting it does not help.
So, questions is - How can I switch between the axes and continue to rotate the 3d figure and modify the drawline object?

답변 (2개)

Rik
Rik 2019년 1월 17일

0 개 추천

With the rotate3d function you can enable and disable this mouse interaction for a specific axis or figure. I presume this will override previous settings.

댓글 수: 1

I use the rotate3d(axis1) command to initiate being able to rotate the isosurface plot. Problem is that once I have used the drawline in axis2, I can no longer rotate the plot in axis1.

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 2019년 1월 17일

0 개 추천

I'm not sure how you're rotating it (automatically via code, or by the user grabbing it and spinning it), but bascially to switch focus between different axes, use the axes function:
% Now stuff will happen in axes1.
axes(handles.axes1);
plot(1:10); % Whatever....
% Now stuff will happen in axes2.
axes(handles.axes2);

댓글 수: 3

The problem is that it should be interactive, so that I may switch between the two axes. I have tried to manually do what you suggest, but it does not help.
I just tried to set the axes(handles.axes) as a buttondownfunction for the separate axes and if including the rotate3d command in the buttondownfunction I get that part to work, but then switching back to the axes with the drawline does not allow me to modify the drawline.
Jan
Jan 2019년 1월 17일
@Christoffer: Can you post some code, which reproduces the problem? I'm not sure what "modify a drawline" means.
The program is 3000+ lines of code, so I'm not sure I can make something simple to reproduce the problem. I assume something like this would be similar to what I try to do: Use guide to generate a GUI with two axes. In the first use drawline to draw a line (I use a button to activate the function) and then plot a 3d figure in the second axes and used rotate3d(handles.axes2) to allow rotation of the figure. Then try to modify the drawline in the first axes (or if using a button to activate drawline, try to rotate the figure in axes2).
From Matlab:
h = drawline(handles.axes1, ___) begins interactive placement of a linear region of interest (ROI) on the specified axes. The function returns h, a handle to an images.roi.line object. You can modify the ROI interactively using the mouse. The ROI object also supports a context menu that controls aspects of its appearance and behavior.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터 및 File Exchange에서 Graphics Object Properties에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by