Bonjour !
Voilà, je cherche à développer un graphique de type "camembert 3D" (sans l'aide des composants Microsoft Office).
Ma première idée était de partir d'un "camenbert 2D", symplement dessiné grâce à la méthode suivante :
Graphics.FillPie(Brushes.Red, new Restangle(0,0,200,200), angleDépart, angleDuMorceau)
Ce qui donne ce résultat :

---Graph 1---
Une fois ce "camenbert 2D" créé, il me suffit de repartir de celui-ci pour créer le 3D. Donc, pour un effet de profondeur 3D de base, je voulais déjà simplement rendre le "camenbert" plus ovale grâce à la méthode suivante :
Graphics.FillPie(Brushes.Red, new Restangle(0,0,200,100), angleDépart, angleDuMorceau)
Donc ce qui donne un autre résultat :

---Graph 2---
Comme on peut le voir, pour la même valeur, une part de "camenbert" ne représente pas la même proportion suivant que ledit "camenbert" est ovale ou rond. L'angle est juste, mais la surface est plus petite.
Si on regarde ce schéma, on voit effectivement que pour une droite tracée à 45°, la surface de la partie hachuré bleu de l'ovale est plus petite que la surface de la partie hachurée orange de l'ovale. Par contre, si on regarde par rapport au cercle vert, la droite tracée à 45° délimite 2 parts ayant une surface égale.

Donc, pour mon graphique, je voudrais plutôt obtenir le résultat suivant, résultat qui respecte les proportions (obtenu par une réduction de la hauteur de l'image du graphique 1 dans un éditeur tel que paint) :

---Graph 3---
Donc ma question est de savoir comment je pourrais faire pour gérer cette différence d'aire ?
Ou tout simplement : comment créer par moi même un graphique en "camenbert 3D" ? 
PS : les valeurs utilisées pour créer les 3 graphiques sont les suivantes :
12,5%; 25%; 12,5%; 25%; 12,5%; 12,5% avec comme angle de départ "-90", angle correspondant à midi sur une horloge
Partager