Hello,
Je souhaite tracer (automatiquement) un diagramme type camembert, en affichant pour chacune des "parts" une déviation standard (chacune des parts est de taille variable et correspond à plusieurs valeurs que je moyenne), affichée un peu à la e manière des "boites à moustache". Pour ce faire, je dois donc déterminer la position des points définissant le ségment qui sera tracé sur chacune des parts, et qui aura une longueur égale à 2x la déviation standard et pour milieu un point sur l'arc de cercle.
Mon approche est la suivante, pour une part P qui est donc incluse dans un cercle C de rayon Cr et de centre O(xo, yo), Cr étant proportionnel à la moyenne calculée précédement:
Soit A et B les deux points situés aux extrémités de chaque part sur le cercle C.
Soit D la droite passant par le milieu M de AB et par le centre de C (médiatrice de AB je crois; je suis ultra rouillé en géométrie..).
Je dois donc trouver les deux points P1 et P2 tels que ces deux points soient sur la droite passant par D, et satisfaisant une contrainte de distance avec O.
Etape 1: Je détermine l'équation de D à partir de O et de M: y = ax + b
Etape 2: Je défini un système d'équation simple pour satisfaire les deux conditions:
1 2 3
|
(1) y = ax + b
(2) (x1 - xo)^2 + (y1-yo)^2 = d^2 |
d étant la distance Cr - sdev, ou Cr + sdev suivant que je cherche P1 ou P2.
En remplacant y par ax + b dans (2), j'obtiens l'équation:
x^2 (1+a) + x (-2xo + 2ab - 2ayo) + (xo^2 + yo^2 + b^2 - 2byo - d^2) = 0
Que je résoud de manière classique... Déterminant:
det = (-2xo + 2ab - 2ay)^2 - 4*(1+a)*(xo^2 + yo^2 + b^2 - 2byo - d^2) ;
etc..
Mon problème est que les segments que j'obtiens ne sont pas situés là où ils devraient être... Difficile de décrire le problème plus que cela sans figure, l'objectif de mon post étant déjà de savoir si mon approche est la meilleur (sous entendu la plus simple) et si vous pensez que j'ai loupé une étape ou fait une erreur...
Merci d'avance
PS: je prends en compte les cas spécifiques comme par exemple lorsque O et A ou B sont alignés (auxquels cas je n'ai pas de soucis)...
Partager