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

Langage Delphi Discussion :

Dessins


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 78
    Points
    78
    Par défaut Dessins
    Bonjour,
    mon appli propose à l'utilisateur de positionner des images (genre triangle) sur une carte (image bmp ou jpg). Certains de ces triangles seront reliés entre eux par une double flèche qui peut changer de couleur.
    Après maintes lecture de tutoriel et sujets de forum, est-ce que quelqu'un pourrait m'aider à découvrir le graphisme sous DELPHI.
    Ma situation actuelle : j'ai suivi ce tutoriel c'est à dire placer un paintbox, puis dessiner des formes dans des "rect". je relies ces formes avec "Lineto". Or lorsque je bouges mes triangles, les lignes précédemment tracées s'effacent. De plus, je ne peux plus modifier la couleur des lignes une fois celles ci tracées. Enfin, je ne sais pas comment dessssiner sur une carte (image bmp ou jpg). pour l'instant, je me fais la main sur du fond blanc
    Merci pour tout aide
    Seb, débutant en delphi
    PS : pas mal le nouveau forum, ça change

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 78
    Points
    78
    Par défaut
    Je rajouterai que je souhaiterais pouvoir identifier chaque ligne afin de pourvoir l'effacer ou la déplacer si les triangles bougent

  3. #3
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Si ca peux t'aider ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://pagesperso.laposte.net/holyview/coding/mes_progs/Generateur_regions_poly.rar
    .: La cosse : il n'y a que ça de vrai :.

  4. #4
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Ce que tu pourrais faire, c'est un base de donnée avec tous les éléments de ton image (trinagles, formes, flèches, ...) et d'actualiser l'image quand tu en a besoin avec ces bases de données.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par Matt2094
    Ce que tu pourrais faire, c'est un base de donnée avec tous les éléments de ton image (trinagles, formes, flèches, ...) et d'actualiser l'image quand tu en a besoin avec ces bases de données.
    je pense que je vais suivre ta proposition.
    Reste désormais à savoir comment dessiner chauqe élément sans effacer l'image de fond, et faire en sorte que les flèches suivent les positions

  6. #6
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Tu dois pour cela définir un ordre d'affichage des différents éléments. A ce moment là, ils se supperposent ; tu n'as qu'à afficher l'image de fond en premier ...
    Pour le fait que les flèches suivent des éléments, il suffie de mettre dans tes base de donnée une variable qui dit quelle élément la flèche suit. Ensuite, il suffit de calculer la direction et la longueur de la flèche, puis de l'afficher ...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par Matt2094
    T; tu n'as qu'à afficher l'image de fond en premier ...
    et d'un point de vue code, ça ressemble à quoi ?

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Canvas.Draw(x,y,Bitmap);
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  9. #9
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par chourmo
    je pense que je vais suivre ta proposition.
    Reste désormais à savoir comment dessiner chauqe élément sans effacer l'image de fond, et faire en sorte que les flèches suivent les positions
    L'astuce, c'est de copier ton image de fond dans un TBitmap vide qui te serve d'image intermédiaire sur laquelle tu peux te permettre de dessiner.

    En gros, si tu utilises un PaintBox, dans son OnPaint tu n'auras a recopier que ce Bitmap, je te livre ici une approche algorithmique :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    TForm1=class(TForm)
    private
      TaCarte,TonBitmap:TBitmap;
    ...
    public
      procedure MetAJourDessin;
      procedure MetAJourAffichage;
    end;
     
    ...
    procedure TForm1.Form1OnCreate();
    begin
      TonBitmap:=TBitmap.Create;
      TaCarte:=TBitmap.Create;
      TaCarte.LoadFromFile('UneCarte.bmp';
     
      //dimensionner TonBitmap en fonction de TaCarte :
      TonBitmap.Width:=TaCarte.Width;
      TonBitmap.Height:=TaCarte.Height;
    end;
     
    procedure TForm1.Form1OnDestroy();
    begin
      TonBitmap.Free;
      TaCarte.Free;
    end;
     
    procedure TForm1.MetAJourDessin;
    begin
       //1) copier ton image de fond (ta carte) dans TonBitmap :
       TonBitMap.Canvas.Draw(0,0,TaCarte
       //2) Dessiner les éléments dans TonBitmap (en fonction de ce que tu as mis dans une liste, un tableau ou une base de données).
       for i:=0 to NbreElements-1 do
       begin
          //dessin du ième élément
          TonBitMap.Canvas.Rectangle()
          TonBitMap.Canvas.Circle()
       end;
    end;
     
    procedure TForm1.MetAJourAffichage;
    begin
       MetAJourDessin;
       PaintBox1.Repaint;
    end;
     
    procedure TForm1.PaintBox1OnPaint();
    begin
       //Dessine TonBitmap dans la PaintBox (c'est un exemple)
       PaintBox1.Canvas.StretchDraw(PaintBox1.ClientRect,TonBitMap);
    end;
    Et quand tu ajoutes ou supprimes un élément, tu utilises la procédure MetAJourAffichage

    Normalement, tu devrais t'en sortir avec cette structure.
    Bidouilleuse Delphi

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

Discussions similaires

  1. [Graphic] Dessiner des hachures
    Par sylverspoon dans le forum 2D
    Réponses: 7
    Dernier message: 22/03/2006, 21h46
  2. [ALGO] dessiner un triangle dans le bon sens
    Par lefait dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 05/02/2005, 14h38
  3. moteur de particules :Dessiner un point
    Par houssa dans le forum OpenGL
    Réponses: 2
    Dernier message: 25/06/2003, 22h13
  4. Dessiner un rectangle avec bords et texte ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 17h17
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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