MATLAB Answers

How to create a patch object without actually plotting it.

22 views (last 30 days)
luc
luc on 1 May 2015
Commented: luc on 1 May 2015
Hello everyone!
I have some data, say [X,Y,Z] and when I use the Patch command it creates a figure and gives me a shape.
I would like to supress the actual figure, and make the code display it later on.
My two problems are: 1) How do I supress the plotting of the patch? 2) How do I display a patch object in a new figure?
Thanks in advance!

  0 Comments

Sign in to comment.

Accepted Answer

pfb
pfb on 1 May 2015
h=patch(X,Y,Z,'r','visible','off');
and then, when you need it
set(h,'visible','on');

  3 Comments

pfb
pfb on 1 May 2015
oh, if you want to copy the object in a different figure
copyobj(h,a)
where a is the handle for the axes in the figure.
But perhaps the visible property spares you from copying the object in a figure. You could set it on and off as you need.
luc
luc on 1 May 2015
Okay, the visibility off worked well, the part where I display it.. not that much.
My current code
Patch_s=patch(XXX_s,YYY_s,ZZZ_s,1,'visible','off');
if m==1
fv_combined1=Patch_s;
end
nv1=length(fv_combined1.Vertices);
fv_combined1.Vertices=[fv_combined1.Vertices;Patch_s.Vertices];
fv_combined1.Faces=[fv_combined1.Faces; Patch_s.Faces+nv1];
This is placed in a loop where I update the patch figure "fv_combined1" via its vertices and Faces.
I can't the code to display the fv_combined1.
figure(1)
copyobj(fv_combined1,1)
set(fv_combined1,'visible','on');
set(Patch_s,'visible','on');
This does not work :(
It gives me this error:
Error using copyobj
Patch cannot be a child of Figure.
Error in patchobjecttest (line 92)
copyobj(fv_combined1,1)
luc
luc on 1 May 2015
Ignore comment. I removed the copyobject and everything was fine!

Sign in to comment.

More Answers (0)


Translated by