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:
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 ....
