Handle 2 axes in one GUI

3 Ansichten (letzte 30 Tage)
Cheng Yoong
Cheng Yoong am 17 Dez. 2011
Beantwortet: GANESH RATHOD am 11 Nov. 2017
I create a GUI with 2 axes.
The first axes I would like just to display an image. Code i used is as below:
I = imread('file destination')
imshow(I)
The second one I would like to plot something on it.
Then i create a button to reset the second axes to initial condition.
But when i press it,it erase everything on second axes and the initial condition was set at first axes.
now the image on first axes was replace by the initial condition.
Anyone can help me?it's kinda urgent.
*the initial condition here is a 3D manipulator plot.
  2 Kommentare
Chandra Kurniawan
Chandra Kurniawan am 17 Dez. 2011
Would you tell me the code you used to reset the axes??
Cheng Yoong
Cheng Yoong am 17 Dez. 2011
I've attached the GUI i've done so that you can get a clearer picture. You can download from here:
<<http://www.sendspace.com/file/gefazr>>
There are 2 axes that i've created. The smaller one i wish to display the robot.jpg which i've included in the folder.The bigger one is to plot the robot.But when execute it,the robot will plot at the smaller one.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Chandra Kurniawan
Chandra Kurniawan am 17 Dez. 2011
Hello,
I have modified your code :
  16 Kommentare
Cheng Yoong
Cheng Yoong am 17 Dez. 2011
That might help me.
I notice that the cylinder always started from point(0,0,0).
is that anywhere to change that?
Chandra Kurniawan
Chandra Kurniawan am 17 Dez. 2011
Of course you can.
You can do modification on X Y Z values
Eq :
[X Y Z] = cylinder(1);
Z = 10*Z;
X = X-20;
Y = Y-5;
h=surf(X,Y,Z);
axis([-10 10 -10 10 -10 10]);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Image Analyst
Image Analyst am 17 Dez. 2011
The pushbutton to clear the second axes should just look something like
axes(handles.axes2); % Do this immmediately upon entering callback function
cla reset;
If it doesn't mention anything about handles.axes1 after you set the current axes to #2 then it will not do anything to axes #1.

Walter Roberson
Walter Roberson am 17 Dez. 2011
My recommendation is to specifically parent all graphics activity. I give an example here, which also has a link to a post in which I explain why it is important.
  1 Kommentar
Cheng Yoong
Cheng Yoong am 17 Dez. 2011
i saw one of your example has the following codes:
f = figure();
ax = axes('Parent',f);
but the defined 'f' is to plot on a pop out axes.
if now i already have an axes in my GUI(tag with axes1), how am i going to define the 'f'?

Melden Sie sich an, um zu kommentieren.


GANESH RATHOD
GANESH RATHOD am 11 Nov. 2017
for n = 1:3
if n==1;
axes(handles.axes1);
hold off;
cla reset;
elseif n==2;
axes(handles.axes2);
hold off;
cla reset;
else
axes(handles.axes3);
hold off;
cla reset;
end;
end;

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by