IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

[area]problème de superposition de bande


Sujet :

MATLAB

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut [area]problème de superposition de bande
    Bonjour,

    J'aimerai utiliser la fonction area pour colorier des bandes.
    le principe est simple, si je veux dessiner une bande bleue entre deux valeurs y1=1 et y2=2, je colorie la zone entre 0 et y2 en bleu et la zone entre 0 et y1 en blanc. Je ne vois pas d'autre méthode pour créer des bandes colorées sous matlab.

    Seulement voilà, le problème se pose quand on veut colorier des bandes qui se superposent, comme dans l'example suivant:

    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
    20
    t1=1:4;
    y11(t1)=1;
    y12(t1)=2;
     
    t2=3:6;
    y21(t2)=3;
    y22(t2)=4;
     
    whiteColour=[1 1 1]; 
    greenColour=[.8 1 .8];
     
     
    area(t1,y12(t1),'FaceColor',greenColour,'EdgeColor',greenColour);
    hold on;
    area(t1,y11(t1),'FaceColor',whiteColour,'EdgeColor',whiteColour);
    hold on;
    area(t2,y22(t2),'FaceColor',greenColour,'EdgeColor',greenColour);
    hold on;
    area(t2,y21(t2),'FaceColor',whiteColour,'EdgeColor',whiteColour);
    axis([0 9 0 6])
    comme vous le remarquez, la première bande ne va pas jusau'à 4. Elle s'arrete à 3 à cause de la couche blanche de la zone avoisinante.
    Je me demande donc s'il existe un procédé plus simple pour colorier des bandes pour contourner ce problème.

    Merci beaucoup,

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Et si tu utilisais fill?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    figure,hold on
    fill([1 4 4 1],[1 1 2 2],[.8 1 .8]);
    fill([3 6 6 3],[3 3 4 4],[.8 1 .8]);
    non?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut
    merci magelan, c'est exactement ce que je cherche. J'aimerai toutefois quelques clarifications.

    comment tu définis ton vecteur X, égal à [1 4 4 1] et [3 6 6 3]?
    pourquoi c'est symétrique?
    si J'ai une fonction y qui varie en fonction de t, comment la définit par un vecteur?

    merci

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    J'ai juste utilisé la définition :
    fill(X,Y,C)
    X contient les abscisses des sommets du polygones (ici le polygone est un rectangle) et Y contient les ordonnées.

    pourquoi c'est symétrique?
    Ca, c'est juste une coïncidence...

    si J'ai une fonction y qui varie en fonction de t, comment la définit par un vecteur?
    Je n'ai pas bien compris, peux-tu préciser?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut
    c'est bon. J'ai réglé le problème.

    par contre, est ce qu'il y a moyen de choisir la couleur des bords?
    par défaut, on obtient une bordure noire, et c'est genant pour mes courbes.
    y a pas une propriété EdgeColor comme pour la fonction area?

    merci

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    On peut régler les mêmes paramètre que pour la fonction area, donc oui, tu peux modifier edgecolor...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut
    parfait, ca marche, merci beaucoup,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de superposition dans un formulaire
    Par vallica dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 17/01/2007, 15h20
  2. [C#] Problème de superpositions d'éléments avec MDI
    Par Gold.strike dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/07/2006, 15h18
  3. problème de superposition de calques
    Par crescendo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/05/2006, 17h27
  4. [JText Area] problème de scroll
    Par mrshoki dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/03/2006, 17h22
  5. Problème de superposition de fenetre
    Par Raton dans le forum MFC
    Réponses: 14
    Dernier message: 28/07/2005, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo