Limitare una generica curva chiusa ad un dominio Rettangolare

Glauco1
Salve a tutti mi trovo ad affrontare questo problema abbastanza contorto per me, il mio obiettivo è quello di generare una generica curva chiusa ad un rettangolo e limitare questa curva chiusa al dominio rettangolare quando questa curva supera il dominio rettangolare, questo programmino deve essere fatto in Matlab.

Per semplificarci i ragionamenti, consideriamo un rettangolo e una circonferenza.

Mi sono ricavato sia in coordinate cartesiane che polari la funzione rettangolo e la irconferenza, quello che mi viene in mente è di calcolarmi il minimo tra due funzioni polari, non ho molte idee a riguardo come procedere in matlab.

Grazie per l'aiuto

Risposte
Dobrogost
La prima idea bovina che mi è venuta in mente è quella di mettere vincoli direttamente nella funzione della curva. In pratica:

clearvars
close all

t=linspace(0,2*pi,100);

r=@(t) [cos(t).*(cos(t)<0.8 & cos(t)>-0.8)+0.8*(cos(t)>0.8)-0.8*(cos(t)<-0.8);...
    sin(t).*(sin(t)<1.8 & sin(t)>-1.8)+1.8*(sin(t)>1.8)-1.8*(sin(t)<-1.8)];

points=r(t);

plot(points(1,:),points(2,:))


Dimmi se può andare. Ovviamente per rendere il codice più leggibile conviene che ti scrivi una function che prenda in ingresso intervallo delle x (risp. y) e formula della curva (insomma, scrivi cos(t).*(cos(t)<0.8 & cos(t)>-0.8)+0.8*(cos(t)>0.8)-0.8*(cos(t)<-0.8) in modo più compatto!).
Non ho ottimizzato niente perchè ho supposto che non ti servisse, nel caso dimmi e cambio un po' il codice

Glauco1
Ho risolto il problema con una procedura un po piu complicata, bene adesso vorrei calcolarmi l'are della curva limitata, ho due funzioni una Area e una minRho.

function minR = minRho(rR,rG)
minR=min(rR,rG);
end


devo calcolarmi l'intefrale da 0 a 2*pi di minRho(phi) in dphi, ho degli errori quando uso questa espressione:

function A = Area()
    polarfun=@(phi,r) minRho(rR,rG);
    A = integral(polarfun,0,2*pi)*0.035;
end

Dobrogost
Non mi è chiarissimo cosa tu abbia passato a integral. Se polarfun è funzione di 2 variabili, perchè integri solo da 0 a 2*pi senza specificare r? Quello è sicuro un errore. Inoltre, la stessa polarfun è definita male: se le variabili che dichiari nella handle sono phi e r, devi metterci quelle al posto di rR e rG.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.