Delete parts of plotted figures?

17 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Star Strider
Star Strider il 23 Ott 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 Commenti
Star Strider
Star Strider il 28 Ott 2020
As always, my pleasure!

Accedi per commentare.

Più risposte (1)

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

Accedi per commentare.

Categorie

Scopri di più su Visual Exploration in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by