Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

[patch][fill] Coloriage entre deux courbes


Sujet :

MATLAB

  1. #1
    Membre du Club
    [patch][fill] Coloriage entre deux courbes
    J'ai vraiment du mal avec ces fonctions. Et je sens que je vais y passer une partie de la soirée. Et l'histoire des polygones dans l'aide, ca me dépasse

    Voilà, j'ai deux courbes :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    plot(uplusvar,TP_Ap);hold on;plot(uminusvar,TP_Ap);


    J'aimerais grisée la partie entre les deux mais avec
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    figure;fill([uminusvar uplusvar],[TP_Ap TP_Ap],[.7 .7 .7])

    mais j'ai des problèmes aux jointures...

    Merci
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  2. #2
    Rédacteur/Modérateur

    Utilises la fonction AREA... légèrement modifiée comme ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Y = [1, 5,
    	3, 2,
    	1, 5,
    	2, 6];
     
    figure
    subplot(211)
    area(Y);
     
    subplot(212)
    h=area(Y);
    set(h(1),'visible','off')


    Les objets créés par AREA sont de type Patch
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et Arduino)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    AREA(Y) donne l'aire entre la courbe Y et 0 (axe des abscisses).

    Dans mon cas, il faudrait plutot l'aire entre la courbe X et 0 (axe des ordonnées).
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  4. #4
    Rédacteur/Modérateur

    Tu pourrais nous montrer l'allure de tes 2 courbes et la partie que tu souhaites colorer ?
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et Arduino)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre du Club
    Desolé, j'ai toujours un probleme d'url... J'ai mis l'image en piece jointe
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3

  6. #6
    Rédacteur/Modérateur

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    x1 = rand(50,1)+2;
     
    x2 = rand(50,1)+4;
     
    y = (1:50).';
     
    figure
     
    fv.Vertices = [x1(1) y(1)
        x2(:) y(:)
        x1(end:-1:1) y(end:-1:1)];
     
    fv.Faces = [1:size(fv.Vertices,1)];
    fv.FaceColor = [.8 .8 .8];
    fv.EdgeColor = [.8 .8 .8];
     
    patch(fv);
    hold on
    plot(x1,y,'r-',x2,y,'b-')


    Tu as juste à changer les valeurs de x1, x2 et y (et les mettre sous forme de vecteur colonne)
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et Arduino)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Membre du Club


    Un grand merci, depuis le temps que je bataille avec ca...

    Ma soirée peut commencer (ici, il est 00:01) !
    MATLAB Version 7.5 (R2007b) sous Windows XP SP3