Salut à tous
Comme le laisse entendre le titre du sujet, je suis en plein dans les cercles, à n'en plus finir
Je vous plante le décor : je désire représenter (cartographier, disons) mon forum. J'ai commencé une petite appli qui me génère un fichier swf.
Voici la terminologie que j'utilise : le forum contient des catégories qui contiennent des boards.
Pour le moment, j'ai pris 3 catégories du forum (sur 4 mais peu importe). Dans chacune d'elles, j'ai pris tous les boards qu'elle contient.
Le forum entier est représenté par un gros cercle centré dans l'animation, tous les autres cercles entrent dedans.
Chaque catégorie est placée dans le cercle "forum" avec des coordonnées fixes et je m'en satisfais relativement jusque là, sauf que le forum changera un jour (constamment, en fait)... Bref, c'est déjà une solution bancale.
Chaque board est placé aléatoirement dans sa catégorie. Nous sommes donc face à un petit souci de superposition...
Voici ce que j'aimerais parvenir à faire : placer un nombre quelconque de cercles dans un cercle parent, de manière à ce que leur surface occupe l'espace maximum dispnible (dans le parent) et qu'il n'y ait ni superposition ni dépassement de zone.
Cela permettrait de placer correctement mes catégories dans le forum, puis chaque board dans sa catégorie, et d'avoir des bulles bien organisées et tout et tout...
Je compte rester avec mes catégories fixes pour vous présenter la solution temporaire à laquelle j'ai pensé :
[/list:u:71b8b60c26][/list:u:71b8b60c26][/list:u:71b8b60c26]
- placer les cercles par ordre de taille décroissante
- placer le premier de manière arbitraire, certainement au bord de la zone
- parcourir ensuite tous les autres cercles à placer dans la même zone :
pour chacun d'eux, il faut partir d'un point de départ (l'angle de l'animation, pour faire simple) et parcourir l'espace de l'animation de point en point (ou moins fréquemment, peu importe)
à chaque étape du parcours, il faudrait regarder plusieurs choses : sommes-nous dans la zone ?[list:71b8b60c26]- si non, continuer
- si oui : sommes-nous dans une autre bulle ?[list:71b8b60c26]
- si oui, continuer
- si non : sommes-nous à distance suffisante pour nous arrêter ? (éviter le chevauchement)[list:71b8b60c26]
- si non, continuer
- si oui, s'arrêter.
Je suis certain qu'il existe une meilleure approche, je voudrais savoir ce que vous en pensez.
Partager