Toutes les parties d'un camemberts en une seule fonction

Signaler
Messages postés
79
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
28 juillet 2008
-
Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
-
BOnjour,


je réalise actuellement un petit programme qui permet la visualitation de stats sur des camemberts 2D créés avec graphics.fillpie.


Actuellement, pour réaliser un camembert complet, je fais comme ca


Public Sub FillPieRectangle2(ByVal e As PaintEventArgs) 'paramed
        camemberttotal = ap + apm + vsavp + vsavm + CB
        camembertpara = vsavp
        proportion2 = Math.Round(camembertpara * 100 / camemberttotal)
        Dim redBrush2 As New SolidBrush(Color.Red)
        Dim rect2 As New Rectangle(0, 50, 200, 100)
        Dim startAngle2 As Single = (proportion1 * 3.6)
        Dim sweepAngle2 As Single = (proportion2 * 3.6)
        TextBox3.Text = proportion2.ToString & " %"
        e.Graphics.FillPie(redBrush2, rect2, startAngle2, sweepAngle2)
    End Sub


    Public Sub FillPieRectangle3(ByVal e As PaintEventArgs) 'med
        camemberttotal = ap + apm + vsavp + vsavm + CB
        camembertme = apm + vsavm + CB
        proportion3 = Math.Round(camembertme * 100 / camemberttotal)
        Dim redBrush3 As New SolidBrush(Color.Green)
        Dim rect3 As New Rectangle(0, 50, 200, 100)
        Dim startAngle3 As Single = (proportion1 + proportion2) * 3.6
        Dim sweepAngle3 As Single = 360 - startAngle3 '(proportion3) * 3.6
         e.Graphics.FillPie(redBrush3, rect3, startAngle3, sweepAngle3)
    End Sub



J'appelle ensuite les différents morceaux pour creer mon graphique complet.


Y'a t'il une facon pour faire ca plus simplement ? Genre dans une même fonction cumuler toutes les parties du graphique, en rajoutant les angles successivement ?

1 réponse

Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
Bonjour, je me suis posé la même question il y a quelques temps pour intégrer des camemberts dans un doc PDF.


J'ai choisi pour simplifier les manipulations de créer une fonction qui accepte comme paramètres :    un tableau (valeurs et libellés associés)
                                  X et Y coordonnées du centre du camembert
                                  R, rayon du camembert
Dans cette fonction je commence par calculer le total des valeurs


puis je boucle sur le tableau en faisant un sous appel de la routin qui trace le camembert quartier par quartier.
Ainsi tu n'ppelle qu'une fonction, ce qui gagne beaucoup de temps lors des développements.
Cette technique te permet en outre de fixer les couleurs des quartiers à l'avance et de choisir des alternances bien visibles.

Mais il existe sûrement d'autres méthodes.
Bon courage.