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 :

Dessin et gestion


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Par défaut Dessin et gestion
    Bonjour,
    J'ai une petite question en ce qui concerne la gestion de dessins.
    Je dessine environ 800 cases (qui sont des losanges), pour chaque j'ajoute dans une liste l'identifiant et des 4 point qui représentent le polygone.

    Je veux que quand je passe sur un losange il change de couleur. Actuellement je parcours ma liste et pour chaque case je teste si la souris est dedans avec un truc dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Function PointIsInPolygon(ByVal polygon() As Point, _
        ByVal target_point As Point) As Boolean
     
        Dim path As New GraphicsPath()
        path.AddPolygon(polygon)
     
        Return path.IsVisible(target_point)
    End Function
    Ensuite je redessine par dessus les cases un polygone plein...Et quand la souris rebouge on recommence a dessiner les 800 cases.

    Le problème c'est que c'est long et ça bug pas mal. Quelqu’un aurait une autre solution ?

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    je pense à 2 choses,

    soit faire un tableau de coordonnées des losanges et faire une routine qui tests si la souris passe dans la surface d'un des losanges
    (mais a mon avis pas très optimisé)

    Sinon tu peux essayer d'implémenter un événement "MouseOn" à chacun de tes losanges.
    Si ce sont des graphiques crées par le code, tu peux leur ajouter des événements.
    Après je ne suis pas spécialiste, visiblement c'est avec un "AddHandler" que tu pourrais le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddHandler myTextGenerator.OnTextChanged, AddressOf myTextGenerator_MonEvenement
    Voir ce lien

    Je dirais même que POL63 a montré que mon idée était réalisable dans ce post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           dim p as new picturebox
           uncontainer.controls.add(p) ' <- ici uncontainer = ta grande PictureBox
           addhandler p.click, addressof pct_click '<- tu ajoute l'événement à ta PictureBox

  3. #3
    Membre confirmé Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Par défaut
    Merci,
    Je doute que je puisse intégrer les Event, moi je dessine sur un bitmap ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          graphic.DrawPolygon(Pens.Black, PointArray)

  4. #4
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Quel est le but de ton dessin?
    une animation? faire une impression en définitif?

  5. #5
    Membre confirmé Avatar de gaetan13
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Par défaut
    C'est comme une carte donc il n'y aura pas d'impression

  6. #6
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Alors pourquoi ne pas passer par des "picturebox" dans une "picturebox_Mère" ?
    tu pourrais facilement gérer le passage de la souris avec les évents.

Discussions similaires

  1. Gestion de dessins Autocad/Catia/3dxml sous Java
    Par tenebriox dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 15/02/2012, 17h33
  2. Gestions évènements avec souris - Dessiner avec souris
    Par CosaNostra dans le forum Débuter
    Réponses: 10
    Dernier message: 23/01/2010, 10h05
  3. Dessiner en Flash + Gestion du scroll
    Par Rodrigue dans le forum Flash
    Réponses: 2
    Dernier message: 14/10/2007, 16h49
  4. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h53

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