Delete parts of plotted figures?

5 vues (au cours des 30 derniers jours)
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras le 23 Oct 2020
Commenté : Star Strider le 28 Oct 2020
I have made this image
with this code:
axis equal
hold on
caca=2*pi();
ang=linspace(0,caca);
xp=5*cos(ang);
yp=5*sin(ang);
circ=[xp;yp];
plot(xp,yp,'r');
L1=[-8 8; 3 3];
plot(L1(1,:),L1(2,:),'b')
And I want to delete the part of the line within the circle and the part of the circle under the line so the image results like this:
Is there any way of achieving that? How can I do it?

Réponse acceptée

Star Strider
Star Strider le 23 Oct 2020
Try this:
axis equal
hold on
caca=2*pi();
ang=linspace(0,caca);
xp=5*cos(ang);
yp=5*sin(ang);
circ=[xp;yp];
L1x = linspace(-8, 8);
L1y = 3*ones(size(L1x));
L1=[L1x; L1y]; % Re-define Line
incirc = inpolygon(L1x,L1y,circ(1,:),circ(2,:));
L1(1,incirc) = NaN;
L1(2,incirc) = NaN;
plot(xp(yp>=3),yp(yp>=3),'r');
plot(L1(1,:),L1(2,:),'b')
.
  4 commentaires
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras le 28 Oct 2020
thanks!
Star Strider
Star Strider le 28 Oct 2020
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

Fangjun Jiang
Fangjun Jiang le 23 Oct 2020
use patch() or fill()? This one does part of it.
patch(xp,yp,'white')
  1 commentaire
ErikJon Pérez Mardaras
ErikJon Pérez Mardaras le 25 Oct 2020
I have tried that and appears and strange figure with black borders

Connectez-vous pour commenter.

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by