JeuWeb - Crée ton jeu par navigateur
Afficher un réseau (social, de neurones ou autre) - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Afficher un réseau (social, de neurones ou autre) (/showthread.php?tid=8068)



Afficher un réseau (social, de neurones ou autre) - Ter Rowan - 06-03-2020

Hello, je me demandais si vous aviez utilisé / vu / recherché un algorithme (voire une librairie) qui permette d'afficher dans une page html un réseau d'éléments connectés

L'objectif n'est pas de voir tout le réseau mais de voir sur un élément choisi, quels sont les éléments qui sont connectés à lui directement, ou ceux connectés à ceux qui lui sont connectés, etc...

Evidemment deux éléments qui sont connectés à un troisième peuvent être connectés entre eux, et tous les cas un peu compliqués (arrière grand père de X connecté à tante de Y)

et par rapport à toutes ses relations, avoir un affichage clair (pas de chevauchement, pas de lien qui traversent une foule d'éléments parce que les deux "liés" sont de part et d'autre de l'écran ...)

Ma vision est que, de toute manière s'il y a trop d'éléments (genre 15 liens de niveaux 1, 20 liens de niveaux 2, ....) on n'arrive plus à exploiter correctement le shema généré (informations, zones cliquables) et qu'on doive alors passer à une vision plus textuelle

ma table de relation est simple : Element1 ; Element2 ; type_de_relation
elle peut évoluer en fonction d'un besoin de l'algo que je n'aurai pas identifié


RE: Afficher un réseau (social, de neurones ou autre) - Xenos - 06-03-2020

Salut,

"pas de liens qui se traversent", c'est impossible dans certains cas (les graphes complets ne sont pas nécessairement planaires https://en.wikipedia.org/wiki/Planar_graph ).
Perso, si ce n'est qu'un affichage, je partirai sur ce que GraphViz propose (dot). Il doit être utilisé en ligne de commande, ou directement en plug-in intégré à PHP ou autre techno utilisée. C'est pas forcément fou comme rendu (faut se creuser un peu la tête) mais si c'est du "back end", c'est suffisant.

Sinon, l'autre approche est de faire du non-graphie avec des tableaux (ou un "arbre" en fait) et de simplement dupliquer l'apparence des noeuds cycliques.

Par exemple, si je "regarde" le noeud A qui est lié à B et C, et B est lié à C et D alors au lieu d'afficher un truc type
A -- B -- D
| /
C

J'affiche un "tableau":
A B
A B D
_ B C
A C

Quelque chose dans le genre


RE: Afficher un réseau (social, de neurones ou autre) - niahoo - 06-03-2020

Dans les exemple Network ici : https://observablehq.com/@d3/gallery tu devrais trouver ton bonheur.


RE: Afficher un réseau (social, de neurones ou autre) - Ter Rowan - 08-03-2020

(06-03-2020, 06:13 PM)Xenos a écrit : Sinon, l'autre approche est de faire du non-graphie avec des tableaux (ou un "arbre" en fait) et de simplement dupliquer l'apparence des noeuds cycliques.

Par exemple, si je "regarde" le noeud A qui est lié à B et C, et B est lié à C et D alors au lieu d'afficher un truc type
A -- B -- D
|  /
C

J'affiche un "tableau":
A B
A B D
_ B C
A C

Quelque chose dans le genre

hello j'avais l'idée de faire un tableau quand trop de noeuds (donc illisisble) mais je ne sais pas trop vers ou je m'embarque dans ce cas

(06-03-2020, 08:01 PM)niahoo a écrit : Dans les exemple Network ici : https://observablehq.com/@d3/gallery tu devrais trouver ton bonheur.

je vais regarder ce qu'il faut, mais effectivement c'était un peu l'idée