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 :

outil de visualisation


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut outil de visualisation
    Bonjour,

    Je cherche à faire un outil de visualisation pour une taxonomie de mots très importante. Les outils de mindmapping classiques sont inopérants étant donné le nombre énorme d'entité qui rend "puante" la taxonomie dépliée totalement... En effet les groupes "au plus bas de l'échelle" peuvent atteindre 200 entités... et non on peut pas réduire...

    Je voudrais dans le principe inscrire chaque "mot" dans ou sur une sphère, pouvoir grouper les mots ( et donc leur sphère)d'une certaine catégorie dans une sphère plus grande et ainsi de suite jusqu'au niveau le le plus général. J'ai pensé à naviguer dans chaque sphère par un principe de zoom qui se voudrait un zoom infini ( même si la taxo n'a que 5 niveaux) avec "invisibilisation" des niveaux inférieurs pour pouvoir lire celui où on est peut être.

    Aujourd'hui la taxo est dans un fichier XML "bien formé"

    N'ayant à ce jour "appris" que le C# sur VS express C# 2010... j'en arrive à ma question:
    Ce genre de truc est il possible en C#? Même pas joli...
    Faut il des outils en plus de Visual Studio? (GDI+?... )
    Comment je peux faaaaireuh?

    Y a t-il carrément d'autres langages qui seraient super beaucoup plus mieux?

    Merci d'avance à tous les Supermen et Superwomen qui daigneront se pencher sur ma détresse!

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Citation Envoyé par Towandaa Voir le message
    N'ayant à ce jour "appris" que le C# sur VS express C# 2010... j'en arrive à ma question:
    Ce genre de truc est il possible en C#? Même pas joli...
    Faut il des outils en plus de Visual Studio? (GDI+?... )
    Comment je peux faaaaireuh?
    Avant toute chose, voilà un problème ambitieux et intéressant !

    Le langage ou la plateforme n'est vraiment pas déterminant pour ce problème. Les outils sur lesquels s'appuyer le sont beaucoup plus. En effet, dans tous les cas on peut faire appel à OpenGL ou DirectX mais, ici, je soupçonne qu'il n'est pas nécessaire d'aller si bas et qu'on peut utiliser des outils de plus haut niveau. Des calculs seront nécessaires mais a priori rien d'extraordinaire qui nécessiterait de jeter C# pour C++ afin de grappiller 30% de performances (moins que ça en réalité si la partie graphique reçoit l'essentiel du boulot).

    Du coup, même si je pencherais sans doute pour C# + WPF, j'aimerais te poser les questions suivantes :
    * Combien de primitives visibles à l'écran ? Il faudrait une réponse du type "1000 rectangles, 4000 mots, 500 courbes de bézier".
    * Affichage statique ou animé ?
    * Combien de mots/jetons et de niveaux au total dans la base ? Quelle place en mémoire ?
    * Quel niveau d'interactivité avec l'utilisateur ? Enrichissement de la taxonomie ou simplement exploration ? Beaucoup de traitements à faire avant d'afficher ?
    * Quelle plateforme (windows ? XP ? Seulement Vista et Seven ?)

    PS : Processing est dédié aux traitements graphiques. De là à dire que ce serait mieux, tout dépend si ton programme se contente purement d'afficher des données brutes ou s'il faut une interaction plus poussée et des traitements nombreux. Et puis, si tu connais déjà bien C#... Personnellement, en attendant tes réponses, je garde sur la table processing, C# + WPF/OpenGL/Direct2d/XNA, C++ et Qt/OpenGL/Direct2d/Direct3d

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Avant toute chose, voilà un problème ambitieux et intéressant !

    Le langage ou la plateforme n'est vraiment pas déterminant pour ce problème. Les outils sur lesquels s'appuyer le sont beaucoup plus. En effet, dans tous les cas on peut faire appel à OpenGL ou DirectX mais, ici, je soupçonne qu'il n'est pas nécessaire d'aller si bas et qu'on peut utiliser des outils de plus haut niveau. Des calculs seront nécessaires mais a priori rien d'extraordinaire qui nécessiterait de jeter C# pour C++ afin de grappiller 30% de performances (moins que ça en réalité si la partie graphique reçoit l'essentiel du boulot).

    Du coup, même si je pencherais sans doute pour C# + WPF, j'aimerais te poser les questions suivantes :
    * Combien de primitives visibles à l'écran ? Il faudrait une réponse du type "1000 rectangles, 4000 mots, 500 courbes de bézier".
    * Affichage statique ou animé ?
    * Combien de mots/jetons et de niveaux au total dans la base ? Quelle place en mémoire ?
    Oui effectivement, un peu eu les yeux plus grands que mes capacités informatiques... mais il va bien falloir que je m'y colle

    Alors:Combien de primitives visibles à l'écran ?
    Le but du truc est que l'on puisse déplier un dernier niveau tout en le gardant entièrement lisible. Ce dernier niveau pouvant contenir jusqu'à environ 200 entités, je suppose qu'il y a max 200 primitives à l'écran... ces "primitives" étant voulues sphériques on va dire 200 courbes de bézier ( si je me plante pas) et vu qu'apparemment les mots sont aussi des primitives () et que je veux un mot par sphère je vais répondre maximum 400 primitives.

    Affichage statique ou animé ?
    En fait l'idée de ce que je voudrais faire c'est comme si on visualisait un arbre en partant du haut en regardant vers le bas, en pouvant zoomer le long et à travers les différentes branches pour trouver la pomme de pin intéressante. Les noeuds de chaque branches sont des sphères et les plus petites sphères sont la pointe de ces ranches tout au bas de l'arbre. ( oui je sais je parle pas a un gamin de 3 ans mais j'ai pas plus "technique" comme explication )

    Combien de mots/jetons et de niveaux au total dans la base ? Quelle place en mémoire ?
    4900 et qq jetons
    4 niveaux sur, un 5ème en projet
    ( c'est une taxo vraiment moisie, vient un moment où c'est difficile à catégoriser)
    et la place mémoire j'en sais foutre rien

    M'enfin le fichier txt fait 200ko

  4. #4
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Au vu des chiffres que tu nous donnes, il n'y a vraiment aucun problème de performances, ou alors aisément franchissable, ce sera donc facile de ce côté-ci.

    Du coup, autant opter pour du C# + WPF : tu connais le langage, l'ensemble est de haut niveau et aisé à manipuler, tous les raffinements graphiques que tu pourrais désirer sont à peu près là (manquent le blending - en-dehors de l'opacité - et une ou deux autres choses mais enfin...)

    Du coup, comment faire...
    * Créer une application WPF.
    * Créer un élément "canvas" et y placer les diverses primitives (mots, lignes, etc) toutes héritées de Visual.
    * Commencer brutalement sans aucune optimisation, puis raffiner l'UI en ajoutant toutes les fonctionnalités désirées, puis raffiner les performances au besoin.

    Mon conseil : faire un prototypage pour comparer très tôt un rendu en fausse 3D (primitives 2D uniquement) et un autre en vraie 3D. Enfin, si on souhaite des effets 3D.

    Le point ardu : répartition automatique des éléments dans l'espace. Des biblios doivent exister. Peut-être prennent-elles même en charge l'affichage, à voir en priorité. Au pire il suffira de trouver un algo adapté, le domaine a été déjà bien creusé.

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut
    Merci beaucoup! Voilà un bon point de départ!

    WPF j'y connais que dale, en interface graphique on a fait que des Windows Form. Il y a surement un tuto par ci par là je vais chercher (ou si tu as un URL cool sous la main je suis preneuse ^^)

    J'avais pas vu l'edit donc je vais complèter mes réponses

    Quel niveau d'interactivité avec l'utilisateur ? Enrichissement de la taxonomie ou simplement exploration ? Beaucoup de traitements à faire avant d'afficher ?
    Le minimum syndical est qu'il puisse se balader dans la taxo de manière fluide et claire. Après niveau au dessus créer des espèces de touches de raccourcis permettant d'aller à telle ou telle catégorie ou d'afficher que les mots de telle année, les mots communs à plusieurs années etc ( mais bon ça ya pas de pb purement graphique il doit falloir régénérer l'affichage sous les conditions rentrées par l'utilisateur, ce qui ne devrait pas prendre 8h étant donné que tu dis qu'il n'y a pas de pb de performance... mais bien sur il me faudra des requêtes impeccables pour switcher entre tout ça sans que ça plante...)
    Et niveau au dessus, que l'utilisateur puisse par exemple sélectionner un mot et sa sphère pour le changer de groupe (style "glisser déposer"), ou carrément rajouter un noeud et son nom et que ça soit reporté sur le fichier XML... ça c'est à mon avis un chouilla plus délicat (il n'y aura à priori pas d'ajout de simple entité)

    * Quelle plateforme (windows ? XP ? Seulement Vista et Seven ?)
    Eeeeeuh bah je pense que la majorité des personnes qui utiliseront cet outil sont sur seven... m'enfin il y a bien des réfractaires Apple mais ils devront s’adapter ^^

    En tout cas merci encore preux chevalier!

  6. #6
    Membre chevronné

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Par défaut
    Citation Envoyé par Towandaa Voir le message
    WPF j'y connais que dale, en interface graphique on a fait que des Windows Form. Il y a surement un tuto par ci par là je vais chercher (ou si tu as un URL cool sous la main je suis preneuse ^^)
    Salut,
    Il y a celui ci qui pourrait t'aider à démarrer.

  7. #7
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Citation Envoyé par Towandaa Voir le message
    WPF j'y connais que dale, en interface graphique on a fait que des Windows Form. Il y a surement un tuto par ci par là je vais chercher (ou si tu as un URL cool sous la main je suis preneuse ^^)
    Je n'avais pas de tuto à fournir mais Deepin s'en est chargé. Par contre, attention : WPF est une API à deux niveaux et les tutos présenteront tous le niveau supérieur. Pour l'UI elle-même c'est ce qu'il faudra mais, pour le rendu du graphe, ce sera le niveau inférieur que tu devras utiliser.

    Le niveau élevé c'est l'usage d'éléments hérités de UIElement avec un layout automatique, des animations gérées par le système et du databinding. Le niveau inférieur, c'est l'usage d'un simple canvas sans databinding et dans lequel on ajoute et positionne manuellement les primitives héritées de Visual (voire UIElement mais mieux vaut chercher à s'en passer). Voici un un example d'usage direct de Canvas. La seule différence est que dans cet exemple les trois primitives sont ajoutées au Canvas via le XAML alors que dans ton cas toutes les primitives seront vraisemblablement créées, ajoutées et supprimées par le code.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/02/2011, 15h18
  2. outils de visualisation de graphe en 3D
    Par medmdell dans le forum Général Java
    Réponses: 0
    Dernier message: 07/04/2009, 16h55
  3. Outil de visualisation données et rapports SAS sur intranet
    Par vince_est dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 01/10/2008, 12h00
  4. [MySQL] Outil pour visualiser la BD
    Par gmorin dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/05/2007, 14h18
  5. Outil pour visualisation graphique de champs vectoriels
    Par j.p.mignot dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 09/02/2006, 22h44

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