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

Lazarus Pascal Discussion :

Composant pour un diagramme type "radar" [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut Composant pour un diagramme type "radar"
    Bonjour,

    Il y a bien longtemps que je ne suis venu sur ce forum, qui a bien changé depuis mon inscription.

    Initié à Turbo Pascal, à l'époque de mes études, j'ai par la suite gentiment tripoté Delphi (edition 6PE de mémoire) tout en pratiquant du Visual Basic (et son équivalent sur Open/LibreOffice), et en surveillant Lazarus du coin de l'oeil. Je ne suis pas pro, juste un amateur qui bricole des trucs/outils pour son job et/ou hobby.

    Voilà pour "my life", histoire de poser le niveau du gars.

    Aujourd'hui, je fais appel à la communauté pour un petit truc probablement tout simple, mais sur lequel je bute.
    Pour une petite application de rien du tout, j'aimerais visualiser "en temps réel" les modifs de certaines données via un diagramme "en radar". Je me suis penché sur le TChart, j'ai cherché des composants permettant de réaliser ce graphique (y compris dans le répertoire "components" de Lazarus), mais je n'ai rien trouvé. Idéalement, ce graphique devrait présenter des échelles différentes sur chacune de ses branches (oui, je suis un enquiquineur )

    Je ne suis clairement pas assez compétent pour créer un composant à part entière, donc si cela n'existe pas, tant pis, je ferais sans.

    Alors, ai-je mal cherché, ou est-ce qu'il n'existe pas encore de solution pour cela ?

    Bien à vous,

    D.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 174
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par diam's Voir le message
    Pour une petite application de rien du tout, j'aimerais visualiser "en temps réel" les modifs de certaines données via un diagramme "en radar".
    Bonjour ! Personnellement, je ne vois pas trop à quoi correspond votre description. Pourriez-vous donner un échantillon des données et expliquer comment vous souhaitez qu'elles soient représentées ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    bonjour,

    Il s'agit tout simplement d'un éditeur de recette (pour la création de bières).
    La modification des ingrédients entraine des modifications calculables sur les paramètres physiques du produit : densités pré et post fermentation, taux d'alcool prévisible, couleur, amertumes (la réelle et la perceptible), etc.

    Nom : diag_radar.png
Affichages : 1205
Taille : 10,2 Ko

    Sur ce diagramme, toutes les "branches" ont la même échelle. Or les valeurs ont en réalité des ordres de grandeurs très différents (l'échelle DI peut aller de 1.020 à 1.150, Df de 1.040 à 0.95, couleur de 3 à plus de 100, etc...), puisqu'il ne s'agit pas des mêmes valeurs physiques.

    J'ai représenté 3 séries (fictives). L'un donne les valeurs minimum d'un style de recette, l'autre les valeurs maxi, et la troisième les valeurs de la recette en cours. D'un seul coup d'oeil, on identifie les paramètres qui sont "hors style". (je voulais faire des surfaces pour visualiser plus facilement et pas uniquement des contours, mais la série des minimum est dans ce cas invisible)

    Edit : mes excuses pour l'oubli de la balise dans le titre, j'ai perdu certaines habitudes.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 174
    Billets dans le blog
    9
    Par défaut
    Merci pour cette description détaillée. Cette fois, je vois. Je ne sais pas s'il y a un composant pour ça. Même sans composant, ça doit être faisable. Des partants pour un mini-défi ?

  5. #5
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour.

    Vite fait, j'ai modifié ta présentation. Ce n'est pas joli, joli, pcq je suis repassé grossièrement sur tes lignes. Mais cela a le mérite d'être plus "lisible".

    Nom : Radar.png
Affichages : 1546
Taille : 19,5 Ko

    Si la présentation te satisfait, un simple PaintBox suffit pour la partie graphique.
    Dans l'événement OnPaint :
    - dessin du bitmap contenant ton "radar"
    - tracé du polygone noir (bordure épaisseur 3, fond transparent)
    - tracé du polygone magenta (idem)
    - tracé du polygone bleu (fond en carrés)

    Reste à calculer préalablement les sommets X,Y de chaque polygone : une fonction renvoyant un TPoint pour chaque branche.
    Le calcul doit se faire en tenant compte de l'échelle utilisée par chaque branche (ratio entre longueur de branche en pixels et valeurs minimale et maximale). Simple à faire pour les 2 branches verticales. Pour les branches à 60°, un petit calcul de trigo s'impose...

    Bien évidemment, on peut créer un composant, mais dans ce cas, ce n'est pas indispensable.

    Cordialement
    Thierry

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    j'ai trouvé le composant TQSpiderGraph, un vieux composant sous delphi.

    J'ai essayé d'en faire un composant sous Lazarus, mais une lib Delphi me manque : jpeg (notament utilisé pour GRADIENT_FILL_RECT_V et GRADIENT_FILL_RECT_H)

    Sauriez-vous quel est l'équivalent de cette librairie sous Lazarus ?

    Sinon, la solution évoquée plus haut est effectivement une bonne piste.

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

Discussions similaires

  1. REQ : Algo pour vérification saisie du "Numero TVA"
    Par Eric.H dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2009, 10h23

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