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

C# Discussion :

tracé de courbe non fait dans Graphics


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 60
    Par défaut tracé de courbe non fait dans Graphics
    Bonjour,

    nouveau problème sur mes graphics

    j'ai en variables globales un "ArrayList tab" dans lequel sont rangés plusieurs tableaux de "PointF" à dessiner sur mon Image => tab[0] = PointF[], tab[1] = PointF[], ...

    cet ArrayList est rempli lors de l'ouverture d'un fichier qui possède ces points dont j'ai besoin par la méthode suivante :

    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
    private bool OpenFile()
            {
                PointF[] pt = new PointF[2];
     
    //ouverture du fichier et traitements afin d'obtenir les points que je souhaite
    //
    //TabPoints est un tableau contennant le mappage de ma carte(représenté par  un fichier .png en ressource) que j'ai faite
    // donc ici, je récupère le point gauche-bas et le point haut-droit
     
                pt[0] = map.searchPointFromLatAndLong(map.TabPoints, longitudeFirst, latitudeFirst);
                pt[1] = map.searchPointFromLatAndLong(map.TabPoints, longitudeLast, latitudeLast);
     
     
     
                ArrayList grp = map.ValeursPressions(map.TabPoints, DataPts, longitudeFirst, latitudeFirst, longitudeLast, latitudeLast, longitudinalIncr, latitudinalIncr);
                pressions.Clear();
     
                for (int i = 0; i < grp.Count; i++)
                    pressions.Add((PointF[])map.MinMaxPressionsSurLatitude((GroupPression)grp[i]));
     
                rect = new Rectangle((int)pt[0].X, (int)pt[1].Y, (int)(pt[1].X - pt[0].X), (int)(pt[0].Y - pt[1].Y));
     
    //on redessine le graphics
                this.panel1.Invalidate();
                return true;
     
            }
    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
    28
    29
    30
    31
    32
    private void panel1_Paint(object sender, PaintEventArgs e)
            {
                float tension = (float)0.2;
                Graphics g = e.Graphics;
                Pen aPen = new Pen(Color.Black, (float)1);
                if(ImOri == null)
                    ImOri = (Image)(rm.GetObject("map"));
     
                g.SmoothingMode = SmoothingMode.AntiAlias;     // anticrénelage
     
     
                Point ulCorner = new Point(0, 0);
                Point urCorner = new Point(panel1.Width, 0);
                Point llCorner = new Point(0, panel1.Height);
                Point[] destPara = { ulCorner, urCorner, llCorner };
     
                if (rect.IsEmpty)
                    g.DrawImage(ImOri, destPara);
                else
                    g.DrawImage(ImOri, destPara, rect, GraphicsUnit.Pixel);
     
     
     
                if (tab.Count != 0)
                    for (int i = 0; i < tab.Count; i++)
                    {
                        g.DrawCurve(aPen, (PointF[])tab[i], tension);
                    }
                g.Dispose();
                aPen.Dispose();
                rm.ReleaseAllResources();
            }
    il m'affiche bien avant d'ouvrir le fihcier toute ma carte ... lorsque j'ouvre le fichier il me fait un zoom sur l'endroit précisé mais ne m'affiche pas mes tracés de courbes

    en passant un point d'arrêt sur la dernière conditionnelle if de la méthode Paint, je remarque qu'il y passe indéfiniment non, car sans le déboguage il m'affiche mon Form mais qu'il y passe au moins une vingtaine de fois (mon tab ne comportant que 17 tableaux de points)

    je ne vois pas du tout d'où ça peut venir

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 60
    Par défaut
    personne ne peut m'aider ?

    je viens de me rendre compte qu'il bouclait aussi 10-20 fois au moins à l'initialisation sur la méthode Paint

    à quoi c'est dû ?


    il ne devrait pas faire plus de 1 fois initialement alors que rien n'est modifié à ce moment-là ... qu'est-ce qui peut provoquer celà ?

    ensuite, lorsque je rempli ma liste de tableau de points, il ne dessine sur le graphics qu'une fois ma liste remplie ?

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

Discussions similaires

  1. Tracé de courbes et légende dans une boucle for
    Par abzi46 dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/10/2009, 17h29
  2. insertion SQL non faites dans la Base ?
    Par pcouas dans le forum Hibernate
    Réponses: 2
    Dernier message: 28/05/2009, 18h49
  3. Tracé de courbe dans un repère
    Par lameufcool dans le forum Pascal
    Réponses: 2
    Dernier message: 20/05/2009, 21h47
  4. [Débutant] Tracé de courbe dans une boucle FOR-END
    Par cozo22 dans le forum MATLAB
    Réponses: 8
    Dernier message: 03/04/2008, 16h42
  5. Non tracé de courbes
    Par did103 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/03/2008, 15h06

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