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++Builder Discussion :

Affichage d'un graphe en tps réel


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 1
    Par défaut Affichage d'un graphe en tps réel
    Bonjour,

    Description :
    J'aimerais afficher en tps réel un polygon (de 4 pts x,y) recu par le port série, ca pas de pb, de gérer une sorte de superposition des derniers pts recus avec les anciens afin d'obtenir une différence de couleur aux endroits ou l'on est déja passé, j'arrive à obtenir un résultat avec 2 TImages ou je compare pixel par pixel le dernier "polygon" récu, et enfin de gérer un zoom.

    1er pb : je suis limité avec le TImage à 5000 par 5000 pixels sinon erreur de mémoire et je souhaiterais beaucoup plus.
    Avec Paintbox pas de limitation mais il faut tout redessiner et pas moyen de faire une gestion de 2 paintbox pour mes recouvrements.

    2eme pb: comment faire pour zoomer sur une Timage autre que par la fonction
    "StretchBlt" qui ne copie que ce que l'on voie (si je ne me trompe pas).


    Merci à tous pour votre participation,

  2. #2
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Par défaut
    Perso, j'utiliserais OpenGL pour faire ça :

    - Performances...
    - Tes données ne nécessitent que le stockage de quelques points par polygone. (Donc stocker une image de 5000*5000 c'est moyen)
    - La superposition en OpenGL ne pose aucun problème. Tu peux imaginer toutes sortes de rendu d'ailleurs (BLEND)...
    - Le zoom non plus.

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonsoir,

    Encore mon avis, utiliser un moteur de rendu c'est peut être la meilleure solution. Pour cela, tu as le choix :
    1. OpenGL
    2. DirectX

    A toi de choisir !!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Bonjour,

    Pour moi, je te suggère de stocker tes structures sous forme de coordonnées, et de les dessiner à l'échelle au fur et à mesure. De cette façon, ton bitmap ne dépassera jamais la taille de l'écran.
    Bon, cela nécessitera des calculs pour savoir si tes polygones sont dans d'autres.
    Je ne connais pas OpenGL ni DirectX, et c'est pour cela que je te fais cette suggestion.

    Cdlt,
    M.P.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Par défaut
    Pour moi, je te suggère de stocker tes structures sous forme de coordonnées, et de les dessiner à l'échelle au fur et à mesure.
    Je pense aussi que c'est ce qu'il faut faire quel que soit le moteur de rendu (GDI, OpenGL, Direct3D).

    Bon, cela nécessitera des calculs pour savoir si tes polygones sont dans d'autres.
    C'est ici que OpenGL (ou Direct3D) sera vraiment performant. Il calculera lui-même tout ça avec les opérations de BLEND, et cela en quelques lignes de code.

  6. #6
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Billets dans le blog
    1
    Par défaut
    Je pense aussi que c'est ce qu'il faut faire quel que soit le moteur de rendu (GDI, OpenGL, Direct3D).
    Est-ce que cela peut aussi servir dans mon projet?
    Celui-ci est:
    Une Carte au format JPG (style carte Routiere)
    Des points et traits a placer dessus que je peut supprimer
    Un zoom
    rendre cliquable mes points
    car pour l'instant avec un Timage, je suis obligé de
    Réécrire toute ma carte quand je fais un effacement (canevas)
    Gerer des zones construites a la volée
    C'est ici que OpenGL (ou Direct3D) sera vraiment performant. Il calculera lui-même tout ça avec les opérations de BLEND, et cela en quelques lignes de code.
    C'est vrai, le deplacement d'un carré texturé est plus rapide que le déplacement d'un Timage je l'avoue
    sinon je suis en train de voir avec fearyourself pour traduire les tuoriels de NeHe en français (tuto 11 a 48), tu pouras donc te servir de OGL rapidement

Discussions similaires

  1. [JFreeChart] graphe en temps réel
    Par lasvegas_parano dans le forum 2D
    Réponses: 2
    Dernier message: 08/06/2011, 17h00
  2. Probleme pour l'affichage d'un graphe + question
    Par gbouchat dans le forum ASP
    Réponses: 7
    Dernier message: 23/07/2007, 19h35
  3. [Débutant] Affichage d'un Graph
    Par Carlitox dans le forum LabVIEW
    Réponses: 6
    Dernier message: 08/06/2007, 15h54
  4. [AJAX] les graphe en temps réel
    Par prg12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/01/2007, 13h38
  5. Graphes en temp réel
    Par prg12 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/01/2007, 13h22

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