Variation proportionnelle de cercles concentriques [résolu]

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: lenainjaune

Bonjour à tous !

Je suis tout nouveau dans ce forum et je ne pensais pas un jour avoir à poster un message sur les mathématiques.

Je ne sais pas si j'ai posté dans la bonne section, donc mille excuses au cas où...

Je suis développeur informatique de niv bac + 2 et et quand j'étais étudiant je me débrouillais pas trop mal en maths ...

Voici le problème:
Une amie passionnée de généalogie, m'a demandé de lui créer une roue d'ascendance (ou tableau circulaire).
Elle m'a demandé s'il était possible de faire un petit programme pour générer des roues paramètrables et imprimables.
En effet, elle en avait déjà confectionné une à la main, à la règle et au compas, et elle s'est revélée peu pratique à l'usage...

Voici ce à quoi cela doit ressembler:
http://img508.imageshack.us/img508/8595/roueij0.jpg

Le principe est simple:
Au centre, on a la personne de qui on fait la généalogie, puis comme elle est issue de 2 parents, dans la couronne suivante il y a 2 cases ... chaque case étant toujours redivisée en 2 (pour les 2 parents), redivisée en 2 etc ...

On a ainsi un arbre généalogique circulaire, où chaque couronne
représente une génération.

Le hic, c'est qu'elle m'a donné une contrainte:
Le problème avec cette représentation est que plus on s'éloigne du centre, plus l'espace lisible devient petit. De même que, plus on est au centre et plus on a de l'espace inutilisé.

L'astuce consiste alors à agrandir la couronne progressivement depuis le centre...

Je me suis posé la représentation suivante:

o Soit 4 points (pour symboliser 3 générations):

D C B A
+ + + +

Connaissant AD (le rayon de la roue)
et connaissant AB (choix du rayon du cercle central, défini par l'utilisateur)

Où se place C pour garder la proportion ?
Après résolution je suis tombé sur un polynôme du 2nd degré,
que j'ai résolu sans difficulté !

o Même chose pour 5 points (4 générations):

E D C B A
+ + + + +

Connaissant AE (le rayon de la roue)
et connaissant AB (choix du rayon du cercle central, défini par l'utilisateur)

Où se placent C et D pour garder la proportion ?
Là je suis tombé sur un polynôme du 3ème degré,
et je n'ai pas sû le résoudre (pourtant j'ai cherché dans mes souvenirs ... mais là ...)

Le système trouvé est:
| BC + CD + DE = AE - AB (Cte)
| CD = BC^2
| CD^2 = DE * BC



J'ai cherché ... mais en vain ...
et en plus on en est qu'à 4 générations ...

La roue que mon amie avait établie était elle à 8 générations.

Créer une roue paramètrable par programmation suivant le nombre de génération et l'épaisseur d'une couronne, n'a pas été trop compliqué.
En revanche, permettre à la roue de varier proportionnellement depuis
son centre est pour moi, un vrai casse-tête ...


Ma question:
Existe t-il une solution acceptable pour faire varier proportionnellement ?
Y a-t'il une fonction mathématique pour le faire, qui donnerait la diamètre en fonction du rang et du rayon du cercle centrale ?
Un algorithme ?
Une piste ?
Une astuce ?
Suis-je dans le bon forum pour demander ça ?

J'espère avoir été assez clair dans mes explications ...

Je vous remercie d'avance ....



Posted by: lenainjaune

Personne pour m'aider ?
Est-ce que quelqu'un a compris mon problème ?



Posted by: nuage

Salut,
une possibilité serait de donner la même aire à chaque case.
Dans ce cas le rayon du cercle extérieur est 3$ r_0\sqrt{2^{n+1}-1} à la n-ième génération, r_0 étant le rayon du cercle intérieur.

Je ne suis pas certain que ce soit très satisfaisant, mais tu peux essayer.



Posted by: lenainjaune

Merci beaucoup pour ta réponse nuage,

Je n'y avais pas pensé ...

Même si effectivement ça ne résoud pas mon problème,
au moins ça me donne une autre piste.
Choisir entre 2 modes d'affichage:
- à espacement constant
- à aire constante

Et comme le problème initial, est une question de place pour écrire ...

Finallement peut être est-ce acceptable.

Je vais essayer de suite ....



Posted by: lenainjaune

Bonjour tout le monde et en particulier à nuage (le seul qui m'ait répondu!)

Après quelques jours d'absence, je m'y suis remis et voilà le résultat:
4 modes de représentations pour la roue d'ascendance.

Voici à quoi cela doit ressembler:
http://img508.imageshack.us/img508/8595/roueij0.jpg


Le comparatif des représentations:
http://img111.imageshack.us/img111/...mparatifdm2.jpg


Les définitions:
http://img48.imageshack.us/img48/46...initionstn0.jpg


Le détail des représentations:
http://img233.imageshack.us/img233/3724/repiva4.jpg

http://img148.imageshack.us/img148/2614/repiiyy9.jpg

http://img233.imageshack.us/img233/3436/repiiigj0.jpg

http://img148.imageshack.us/img148/1417/repivoq3.jpg


J'ai donc fais un programme qui dessine une roue selon le type, le nombre de générations et le rayon du cercle central.

Reste plus qu'à gérer les impressions, qui devront pouvoir se faire sur plusieurs pages...

Si quelqu'un voit un autre type de représentation possible ...
qu'il n'hésite pas à m'en faire profiter (surtout pour les équations).

En espèrant que cette étude sera profitable à quelqu'un ...

A bientôt!











-