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

VB.NET Discussion :

Ajouter une barre de zoom pour Zedgraph


Sujet :

VB.NET

  1. #1
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut Ajouter une barre de zoom pour Zedgraph
    Bonjour à tous,

    Mon projet utilise Zedgraph pour afficher des courbes de mesures de nos systèmes.

    Actuellement je fais des tests avant la validation, pour ce faire j'ai créé un fichier contenant 8 ans de données toutes les 10 minutes.

    Zedgraph se comporte sans aucun souci, mais bien sûr les données variant en permanences vous imaginer bien qu'en 8 ans je n'arrive plus à distinguer la courbe, mais plutôt un gros rectangle.

    La fonction zoom avec la molette ou la souris fonctionne à merveille, mais la encore, il faut si reprendre en plusieurs fois.

    Je cherche donc à rajouter dans m'a WinForm une barre avec un curseur qui viendrait modifier le zoom dans ZedpGraph. Je ne parle pas des ascenseurs que j'ai activé. Mais d'une barre de type trackBar.

    Pour ce faire il faut que je trouve un moyen de récupérer le Zoom maximum ou minimum (suivant comment on l'entend) et ensuite il faut que je puisse manuellement affecter ce zoom horizontal (uniquement) de la nouvelle valeur de la trackBar à zedgraph.

    Merci de votre aide

  2. #2
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Pour le moment je n'est pas encore trouvé mais je pense qu'il faut que j'utilise "ZoomPane"

    Son prototype est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void ZoomPane(
    	GraphPane pane,
    	double zoomFraction,
    	PointF centerPt,
    	bool isZoomOnCenter
    )

    pane (GraphPane)
    The GraphPane instance to be zoomed.
    zoomFraction (Double)
    The fraction by which to zoom, less than 1 to zoom in, greater than 1 to zoom out. For example, 0.9 will zoom in such that the scale is 90% of what it was originally.
    centerPt (PointF)
    The screen position about which the zoom will be centered. This value is only used if is true.
    isZoomOnCenter (Boolean)
    true to cause the zoom to be centered on the point , false to center on the Rect.

    Je pense avoir la plupart des paramètre mais je n'arrive pas encore a savoir quoi mettre en centerPt (PointF). "System.Drawing"

    Un peut d'aide sur cette partie serait pas refus Merci

  3. #3
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 688
    Points : 1 960
    Points
    1 960
    Par défaut
    Ne pensez vous pas que poser votre question directement sur le site qui a developpe la librairie serait plus approprie ?

  4. #4
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Je suis arriver a bidouiller quelque chose avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Zoom As Int64 = 0
    Dim Valeur As Double
    Dim Point As PointF
    Valeur = TrackBar1.Value / 10
     
    Point = New Point(Zg1.Size.Height, Zg1.Size.Width)
     
    Zg1.ZoomPane(_myPane, Valeur, Point, True)
    Cela marche un peut mais en faite ,je fait un zoom constant car je zoom sur la taille de la courbe à l'écran et non pas la taille de la courbe complète.

    Enfaite si je met valeur à 0.5 j'ai bien 50% de m'a courbe mais si je remet Valeur à 0.1 j'ai 10% de zoom sur la courbe de mes 50% précèdent et non 10% de la courbe total. !!!

  5. #5
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par Danyel Voir le message
    Ne pensez vous pas que poser votre question directement sur le site qui a developpe la librairie serait plus approprie ?
    Bien sûr, mais j'ai un gros handicap, car j'ai de gros soucis avec la langue de Shakespeare. J'espère avoir mon complément de formation en anglais à la rentrée, car faut avouer que le niveau d'anglais au BTS est vraiment minable voir inadmissible.

  6. #6
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 688
    Points : 1 960
    Points
    1 960
    Par défaut
    Citation Envoyé par megamario Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Point = New Point(Zg1.Size.Height, Zg1.Size.Width)
    Sans avoir le code complet, assez difficile de dire, mais on dirait que cela est dû a cette ligne qui semble redefinir le point a partir du zg1 actuel, donc de ton probleme.
    Moi, j'essayerai de deplacer cette ligne en dehors de la routine de zoom et ca devrait fonctionner.

  7. #7
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par Danyel Voir le message
    Sans avoir le code complet, assez difficile de dire, mais on dirait que cela est dû a cette ligne qui semble redefinir le point a partir du zg1 actuel, donc de ton probleme.
    Moi, j'essayerai de deplacer cette ligne en dehors de la routine de zoom et ca devrait fonctionner.

    Malheureusement cela ne marche pas de déplacer seulement cette ligne.

    Voici un peut plus d'explication:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
     
            Dim Valeur As Double
     
            Valeur = TrackBar1.Value / 10
     
            Zg1.ZoomPane(_myPane, Valeur, Point, True)
        End Sub
    TarckBar1 c'est bien entendu la trackBar qui devrais me servir à faire mon zoom
    Valeur c'est le % de zoom que je devrais appliquer à m'a courbe.

    Zg1 c'est mon Objet ZedGraph.

    _MyPane c'est

    Private _myPane As GraphPane 'Nom du graph

    Mon souci c'est que Zoompane marche bien mais uniquement sur la dimension du graphe affiché à l'écran, si bien que je zoom tout le temps même si je reduit la valeur de la TrackBar.

    J'ai essayé d'indiquer des "Point" diffèrent mais je n'arrive pas à voir de réel différence à l'affichage mais pour le moment je continu en ce sens.

Discussions similaires

  1. Ajouter une barre de defilement de vidéo pour flv
    Par koKoTis dans le forum Flash
    Réponses: 8
    Dernier message: 28/06/2007, 20h49
  2. [JToolBar] ajouter une barre d'outil à un JApplet
    Par romuluslepunk dans le forum Composants
    Réponses: 4
    Dernier message: 09/08/2005, 03h36
  3. [MFC] Ajouter une barre de message à un CDialog
    Par annedjomo dans le forum MFC
    Réponses: 7
    Dernier message: 09/05/2005, 13h45
  4. Ajouter une barre d'outils à une sous fenêtre
    Par barthelv dans le forum MFC
    Réponses: 6
    Dernier message: 23/04/2004, 14h17

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