GRAPHIQUE FACILE A DESSINER : CAMEMBERT ET HISTOGRAMME
Utilisateur anonyme
-
8 avril 2006 à 20:08
cs_Nico52
Messages postés35Date d'inscriptionvendredi 20 février 2004StatutMembreDernière intervention11 mai 2007
-
24 avril 2010 à 13:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Nico52
Messages postés35Date d'inscriptionvendredi 20 février 2004StatutMembreDernière intervention11 mai 2007 24 avril 2010 à 13:04
Bonjour,
C'est dommage le texte ne s'affiche pas ni dans l'histogramme, ni dans le camembert.
Comment faire ?
Icarius44
Messages postés51Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 mars 20091 25 mai 2009 à 13:31
nbDessin c'est le nombre de graduation de ton axe des ordonnées.
"zone idéale de dessin" celle que tu veux, ce qu'il faut par contre c'est que l'appelle à la fonction passe bien les paramètres auquel tu pense.
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 25 mai 2009 à 13:03
salut,
t'as été très clair..mrc, ms il manque une petite chose: quelle est d'après toi la zone idéale de dessin, quelle est la valeur que doit prendre "nbDessin"
Icarius44
Messages postés51Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 mars 20091 25 mai 2009 à 00:05
Step : err de copier coller
ensuite, i va aller de oRect.Y + oRect.Height à oRect.Y, donc i-oRect.Y va aller de 0 à oRect.Height. ensuite si tu divise cette valeur pas iUnite, en 0 ça te donne 0 et en oRect.Height ça te donne oRect.Height / ( oRect.Height / iMax ) oRect.Height*iMax/oRect.Height iMax, donc la valeur ira donc de 0 à iMax. Après tu definit ton pas comme ceci : -oRect.Height / nbDessin.
Ton problème vient peut-être du fait que tu appelle la fonction avec la mauvaise zone de dessin (trop grande)
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 23 mai 2009 à 23:26
en tt k si on enlève "step" (que je vois pas sa nécessité) le prob reste le mm
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 23 mai 2009 à 22:43
tu vx dire koi par "step" , sa génère une erreur...?????
Icarius44
Messages postés51Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 mars 20091 23 mai 2009 à 00:12
en effet, petite erreur.
CType((i-oRect.Y Step)/iUnite,Integer)
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 22 mai 2009 à 23:55
pardon!..me montrer comment le calculer
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 22 mai 2009 à 23:45
il y'a tjr le mm problème, si tu veux bien me donner l'échelle val/pct ou me montrer moi comment le calculer...j'en serai ravi
Icarius44
Messages postés51Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 mars 20091 19 mai 2009 à 09:34
For i = oRect.Y + oRect.Height To oRect.Y - oRect.Height / 5 Step ...
Tu sort du rectangle de dessin, c'est :
For i = oRect.Y + oRect.Height To oRect.Y Step -oRect.Height / 5
De là je ne comprend pas pourquoi tu te prend la tête avec 3 variable, "i" est suffisante.
For i = oRect.Y + oRect.Height To oRect.Y Step -oRect.Height / 5
g.DrawLine(Pens.Black, oRect.X, i, oRect.X - 4, i)
g.DrawString(CType(i/iUnite,Integer).ToString, Me.Font, Brushes.Black, oRect.X - 20, i - g.MeasureString(graduant.ToString, Me.Font).Height / 2)
Next
iUnite est un coefficient de mise à l'échelle entre le max des items et la hauteur du cadre. (calculé ligne 139)
P.S: mon cast est peut-être pas bon, je n'ai pas de compilo VB sous la main.
enjoy !
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 19 mai 2009 à 00:44
salut,
c encore moi.. j'ai réussi à graduer l'axe des ordonnées mais les graduants ne sont pas proportionnels avec les valeurs contenus dans l'histogramme.. voila le code que j'ai fait :
' graduation des ordonnées
Dim i, val, graduant As Integer
val = iMax
For i = oRect.Y + oRect.Height To oRect.Y - oRect.Height / 5 Step -oRect.Height / 5
g.DrawLine(Pens.Black, oRect.X, i, oRect.X - 4, i)
While (val Mod 5 <> 0)
val += 1
End While
g.DrawString(graduant, Me.Font, Brushes.Black, oRect.X - 20, i - g.MeasureString(graduant.ToString, Me.Font).Height / 2)
graduant += val / 5
Next
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 18 mai 2009 à 22:28
ok!, mrc bien je vais me débrouiller pour sa !
Icarius44
Messages postés51Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 mars 20091 18 mai 2009 à 13:37
De mémoire il n'y en a pas, mais un petit for à la ligne 147 devrait suffir.
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 18 mai 2009 à 13:29
salut,
bah on fait comment pour ajouter les graduation au axe des ordonnées de l'histogramme!!?
cs_othinakiway
Messages postés30Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 juin 20092 5 mai 2009 à 19:45
Salut,
J'aime l'esprit simple chez les gents moi !, j'adore ton exemple, je te donne 8/10 .
Bonne continuité !
cs_Maxime31
Messages postés79Date d'inscriptionsamedi 4 février 2006StatutMembreDernière intervention28 juillet 2008 16 oct. 2007 à 20:07
Comment agrandit le camembert ?
amohammed
Messages postés7Date d'inscriptionsamedi 21 juillet 2007StatutMembreDernière intervention 1 février 2008 21 juil. 2007 à 12:52
Bonjour,
Excellent comme exemple !!
Ptite question SVP : je voudrais exporter les donner se trouvant dans un GridView vers un fichier Word sous forme d'un tableau, bien sûr, avec un camembert juste en dessous.
Que devrais-je rajouter au code ci-dessus pour le faire ?
Merci d'avance.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 13 avril 2006 à 15:32
Exact, j'avais mal traduit.
désolé.
Icarius44
Messages postés51Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 mars 20091 13 avril 2006 à 14:46
# If Not (couleur.MoveNext) Then
# couleur = LLCouleur.GetEnumerator
# couleur.MoveNext()
# End If
Je n'avance que de 1 pas : c'est si j'arrive pas à avancer je recrée un nouveau curseur que je fait ensuite avance pour qu'il pointe sur la première couleur
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 10 avril 2006 à 15:48
# If Not (couleur.MoveNext) Then
# couleur = LLCouleur.GetEnumerator
# couleur.MoveNext()
# End If
Si je ne me trompe pas, tu avance de 2 pas dans couleur non aulieu de 1 pas.
crossblade
Messages postés113Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention 3 février 2007 9 avril 2006 à 12:46
24 avril 2010 à 13:04
C'est dommage le texte ne s'affiche pas ni dans l'histogramme, ni dans le camembert.
Comment faire ?
25 mai 2009 à 13:31
"zone idéale de dessin" celle que tu veux, ce qu'il faut par contre c'est que l'appelle à la fonction passe bien les paramètres auquel tu pense.
25 mai 2009 à 13:03
t'as été très clair..mrc, ms il manque une petite chose: quelle est d'après toi la zone idéale de dessin, quelle est la valeur que doit prendre "nbDessin"
25 mai 2009 à 00:05
ensuite, i va aller de oRect.Y + oRect.Height à oRect.Y, donc i-oRect.Y va aller de 0 à oRect.Height. ensuite si tu divise cette valeur pas iUnite, en 0 ça te donne 0 et en oRect.Height ça te donne oRect.Height / ( oRect.Height / iMax ) oRect.Height*iMax/oRect.Height iMax, donc la valeur ira donc de 0 à iMax. Après tu definit ton pas comme ceci : -oRect.Height / nbDessin.
Ton problème vient peut-être du fait que tu appelle la fonction avec la mauvaise zone de dessin (trop grande)
23 mai 2009 à 23:26
23 mai 2009 à 22:43
23 mai 2009 à 00:12
CType((i-oRect.Y Step)/iUnite,Integer)
22 mai 2009 à 23:55
22 mai 2009 à 23:45
19 mai 2009 à 09:34
Tu sort du rectangle de dessin, c'est :
For i = oRect.Y + oRect.Height To oRect.Y Step -oRect.Height / 5
De là je ne comprend pas pourquoi tu te prend la tête avec 3 variable, "i" est suffisante.
For i = oRect.Y + oRect.Height To oRect.Y Step -oRect.Height / 5
g.DrawLine(Pens.Black, oRect.X, i, oRect.X - 4, i)
g.DrawString(CType(i/iUnite,Integer).ToString, Me.Font, Brushes.Black, oRect.X - 20, i - g.MeasureString(graduant.ToString, Me.Font).Height / 2)
Next
iUnite est un coefficient de mise à l'échelle entre le max des items et la hauteur du cadre. (calculé ligne 139)
P.S: mon cast est peut-être pas bon, je n'ai pas de compilo VB sous la main.
enjoy !
19 mai 2009 à 00:44
c encore moi.. j'ai réussi à graduer l'axe des ordonnées mais les graduants ne sont pas proportionnels avec les valeurs contenus dans l'histogramme.. voila le code que j'ai fait :
' graduation des ordonnées
Dim i, val, graduant As Integer
val = iMax
For i = oRect.Y + oRect.Height To oRect.Y - oRect.Height / 5 Step -oRect.Height / 5
g.DrawLine(Pens.Black, oRect.X, i, oRect.X - 4, i)
While (val Mod 5 <> 0)
val += 1
End While
g.DrawString(graduant, Me.Font, Brushes.Black, oRect.X - 20, i - g.MeasureString(graduant.ToString, Me.Font).Height / 2)
graduant += val / 5
Next
18 mai 2009 à 22:28
18 mai 2009 à 13:37
18 mai 2009 à 13:29
bah on fait comment pour ajouter les graduation au axe des ordonnées de l'histogramme!!?
5 mai 2009 à 19:45
J'aime l'esprit simple chez les gents moi !, j'adore ton exemple, je te donne 8/10 .
Bonne continuité !
16 oct. 2007 à 20:07
21 juil. 2007 à 12:52
Excellent comme exemple !!
Ptite question SVP : je voudrais exporter les donner se trouvant dans un GridView vers un fichier Word sous forme d'un tableau, bien sûr, avec un camembert juste en dessous.
Que devrais-je rajouter au code ci-dessus pour le faire ?
Merci d'avance.
13 avril 2006 à 15:32
désolé.
13 avril 2006 à 14:46
# couleur = LLCouleur.GetEnumerator
# couleur.MoveNext()
# End If
Je n'avance que de 1 pas : c'est si j'arrive pas à avancer je recrée un nouveau curseur que je fait ensuite avance pour qu'il pointe sur la première couleur
10 avril 2006 à 15:48
# couleur = LLCouleur.GetEnumerator
# couleur.MoveNext()
# End If
Si je ne me trompe pas, tu avance de 2 pas dans couleur non aulieu de 1 pas.
9 avril 2006 à 12:46
8 avril 2006 à 20:08
pas mal comme exemple ! :)
www.troxsa.info