How to create a patch object without actually plotting it.

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!

 采纳的回答

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

3 个评论

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.
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)
Ignore comment. I removed the copyobject and everything was fine!

请先登录,再进行评论。

更多回答(0 个)

类别

Community Treasure Hunt

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

Start Hunting!

Translated by