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

Qwt Discussion :

Problème de zoom et autoscale


Sujet :

Qwt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut Problème de zoom et autoscale
    Bonjour,

    J'ai ajouté un QwtPlotZoomer à mon graphique et cela fonctionne bien.
    Par contre lorsque que j'ajoute des données le plot ajuste automatiquement le scale auy données affichées. Avec le zoom si je zoom en avant puis je zoom en arrière je reviens pas à l'affichage d'origine mais à la vue par défaut qui va jusqu'à 1000 en x comme en y.

    Je voudrais pouvoir revenir à la vue correspondant a l'autoscale. Une idée ?

    Merci par avance

    K-pa

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    as tu regardé dans la doc??

    je sais pas , un truc comme
    http://qwt.sourceforge.net/class_qwt...db7d9931fe19b9

    peut etre

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    J'ai essayé mais il y à encore un petit problème:
    J'affiche une première série de donnée sur le graph qui s'adapte automatiquement. Grâce à la méthode setZoomBase j'arrive à fair en sorte que le zoom out reviennent bien au zoom par défaut.
    Par contre après je veut tracer d'autre valeur sur le plot et la le zoom par défaut reste à la valeur choisie précédement.
    J'ai bien essayer de faire un setZoomBase(QwtDoubleRect(-500,-500,1000,1000)) avant d'afficher les nouvelles valeurs puis de refaire un setZoomBase mais cela ne chnage rien !

    Avez-vous une idée ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    Voici le code que j'utilise pour rafraichir mon graphique avec les nouvelles valeurs:
    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
     
    void PlotWidget::updatePlot()
    {  
      zoomer->zoom(0);
      zoomer->setZoomBase(QwtDoubleRect(-500, -500, 1000, 1000));
     
      //update curve
      mot1_pos->setData(com->getTimeData(), com->getMot1PosData());
      mot2_pos->setData(com->getTimeData(), com->getMot2PosData());
      mot1_cons->setData(com->getTimeData(), com->getMot1ConsData());
      mot2_cons->setData(com->getTimeData(), com->getMot2ConsData());
     
      replot();
      zoomer->setZoomBase();
    }

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    ca en fait beaucoup des zoom..non?
    Essai cela.
    Les if sont uniquement pour montrer les possibilté tu peut remplacer false par treu pour tester. Normalement, zoomer->zoom(0); appelle replot()
    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
     
    void PlotWidget::updatePlot()
    {  
      //update curve
      mot1_pos->setData(com->getTimeData(), com->getMot1PosData());
      mot2_pos->setData(com->getTimeData(), com->getMot2PosData());
      mot1_cons->setData(com->getTimeData(), com->getMot1ConsData());
      mot2_cons->setData(com->getTimeData(), com->getMot2ConsData());
     
    if (false)
          zoomer->setZoomBase(QwtDoubleRect(-500, -500, 1000, 1000));
    else
         zoomer->setZoomBase();
     
    if (false)   zoomer->zoom(0);
    }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 65
    Points : 35
    Points
    35
    Par défaut
    En faite cela fonctionne comme j'ai fait.
    Le premier zoomer->zoom(0); pour revenir en haut de la pile de zoom.
    zoomer->setZoomBase(QwtDoubleRect(-500, -500, 1000, 1000)); pour afficher tous le graphique et que le autoscale puisse fonctionné correctement
    zoomer->setZoomBase(); pour mémorisé l'autoscale comme zoom de niveau 0.

    Je pensse pas qu'il soit possible de faire plus simple ?

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    un zoomer->setZoomBase(QwtDoubleRect(-500, -500, 1000, 1000));
    et un zoomer->zoom(0);
    devrait suffir

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    après avoir ajouté ta courbe du fais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    graphe->setAxisAutoScale(0);//Mon axe X ou Y
    graphe->setAxisAutoScale(2);//l'autre axe
    zoome->setZoomBase();

    il n'y a besoin de rien d'autre

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

Discussions similaires

  1. [Beta4] Menu couches et problème de Zoom
    Par luigifab dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 05/03/2010, 15h14
  2. CSS et FireFox : Problème de zoom à l'impression
    Par CowBoysDaRk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 21/06/2007, 12h36
  3. Problème de zoom
    Par mappeur dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/10/2006, 16h12
  4. Problème de "zoom"
    Par JCD_31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 22/06/2006, 11h55

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