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

Interfaces Graphiques Discussion :

Déplacement d'une droite verticale


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut Déplacement d'une droite verticale
    bonjour,

    j'ai utilisé le code présenté par Duf42 dans cette discussion :
    http://www.developpez.net/forums/d74...mation-matlab/

    j'ai eu un problème pour déplacer une droite VERTICALE (x=0.1) de 0.1 jusqu'au 12 avec une pause de 0.01
    j'ai essayé avec ce code là mais ça marche pas


    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
    21
    22
    23
    24
    25
    26
    27
     
    % Création de l'axe
    AxMain = axes('XLim', [0,1]);
     
     
    % Définition de l'axe des abscisses
    x1=0.1;
    x2=0.1;
    y1=0;
    y2=0.3;
    X=line([x1 x2],[y1 y2] ,'Color','b')
     
    % Tracé de la courbe "figée"
    curve = plot(AxMain,X);
     
    % Boucle pour animer la courbe
    for i_plot = 1:2
     
        pause(0.01);
     
        % Calcul d'un x "translaté"
        X_trans=X+(0.1*i_plot);
     
        % Modification de la courbe
        set(curve, 'YData', X_trans);
        drawnow;
    end

    j'attends votre réponse avec impatience
    merci d'avance
    zak

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonsoir,

    Pourrais-tu nous dire ce qui ne marche pas? (message d'erreur, fonctionnement anormal)

    Bonne soirée,
    Duf

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut urgent
    bonsoir duf42

    merci beaucoup pour ta réponse
    j'ai réussi à tracer la droite verticale comme mentionné dans la figure 1
    mais lorsque j'introduise le code pour déplacer la ligne j'aurai une page vide (fiqure 2)

    merci beaucoup
    Pièce jointe 54534

    Pièce jointe 54535

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Ok,

    Je peux pas tester là mais je ferais plutôt comme ca:
    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
    21
    22
    23
    24
    25
    26
     
    % Création de l'axe
    AxMain = axes('XLim', [0,1]);
     
     
    % Définition de l'axe des abscisses
    x_pos=0.1;
    y1=0;
    y2=0.3;
    X=line([x_pos x_pos],[y1 y2] ,'Color','b')
     
    % Tracé de la courbe "figée"
    curve = plot(AxMain,X);
     
    % Boucle pour animer la courbe
    for i_plot = 1:2
     
        pause(0.01);
     
        % Calcul d'un x "translaté"
        x_pos = x_pos +(0.1*i_plot);
     
        % Modification de la courbe
        set(curve, 'XData', [x_pos x_pos]);
        drawnow;
    end

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut
    bonsoir
    j'ai testé le code que tu m'a envoyé et j'ai eu le résultat suivante figure1: Pièce jointe 54576

    merci beaucoup

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Les échelles de tes axes sont étranges
    Peux-tu faire un :
    avant de lancer le code pour être dans un environnement "propre" ?

    Sinon question sur le code, que je ne peux pas testé, pourquoi faire LINE puis PLOT ?
    Le LINE effectue déjà le tracé.

    Et comme ça :
    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
    21
    22
    % Création de l'axe
    AxMain = axes('XLim', [0,1]);
     
     
    % Définition de l'axe des abscisses
    x_pos=0.1;
    y1=0;
    y2=0.3;
    hLine=line([x_pos x_pos],[y1 y2] ,'Color','b','Parent',AxMain)
     
    % Boucle pour animer la courbe
    for i_plot = 1:2
     
        pause(0.01);
     
        % Calcul d'un x "translaté"
        x_pos = x_pos +(0.1*i_plot);
     
        % Modification de la courbe
        set(hLine, 'XData', [x_pos x_pos]);
        drawnow;
    end
    De plus il faut que tu comprennes bien le principe de la boucle.
    Là MATLAB va te dessiner :
    - Une ligne pour x=0.1 %avant la boucle
    - Une ligne pour x=0.1+0.1*1 =0.2 %pour i_plot = 1
    - Une ligne pour x=0.2+0.1*2 =0.4 %pour i_plot = 2

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2015, 19h26
  2. Réponses: 23
    Dernier message: 17/08/2010, 16h17
  3. Tracer une droite verticale sur un graphique
    Par AdiAccess dans le forum IHM
    Réponses: 1
    Dernier message: 04/03/2008, 12h05
  4. Tracer une droite verticale
    Par jmbonnaz dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/05/2007, 11h10
  5. Déplacement d'une Cible sur une droite
    Par kurul1 dans le forum C++Builder
    Réponses: 10
    Dernier message: 11/07/2005, 16h44

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