0/5 (4 avis)
Vue 25 228 fois - Téléchargée 1 023 fois
Imports System.Drawing Imports System.Drawing.Imaging Public Class Graph Public Function tracegraph(ByVal TitreGraph As String, ByVal colfond As Color, ByVal colgraph As Color, ByVal Valeurs() As Integer, ByVal Descriptions() As String, ByVal nbvaleur As Integer, ByVal largeurGraph As Integer, ByVal hauteurGraph As Integer, ByVal legende As Font, ByVal titre As Font, ByVal ValHaut As Integer) As Bitmap Dim i As Integer Dim MaBitMap As New Bitmap(largeurGraph, hauteurGraph) 'on commence par créer une image à la bonne taille Dim MonObjGfx As Graphics Dim lepas As Integer Dim interligne As Integer Dim larg As Integer Dim CoefHauteur As Double Dim Haut As Integer lepas = (largeurGraph / (nbvaleur + 1)) ' on calcule le pas d'avancement larg = lepas / 2 'on calcule la largeur des colonnes MonObjGfx = Graphics.FromImage(MaBitMap) ' On met la couleur de fond MonObjGfx.Clear(colfond) ' On trace un rectangle tout autour de notre image de la bonne dimension MonObjGfx.DrawRectangle(Pens.Black, 0, 0, largeurGraph, hauteurGraph) ' On donne titre à notre graphique MonObjGfx.DrawString(TitreGraph, titre, Brushes.Black, New PointF(5, 5)) ' on calcule le coeficient pour l'échelle CoefHauteur = (hauteurGraph - 50) / ValHaut Try For i = 0 To nbvaleur - 1 Haut = (Valeurs(i) * CoefHauteur) ' On trace le rectangle de couleur Bleu MonObjGfx.FillRectangle(New SolidBrush(colgraph), ((i + 1) * lepas), ((hauteurGraph - 20) - Haut), larg, Haut) MonObjGfx.DrawRectangle(Pens.Black, ((i + 1) * lepas), ((hauteurGraph - 20) - Haut), larg, Haut) ' Histoire de rendre un peu plus beau notre histogramme, on met un contour pour chaque barre MonObjGfx.DrawRectangle(Pens.Black, ((i + 1) * lepas), ((hauteurGraph - 20) - Haut), larg, Haut) ' On affiche la légende en dessous de la barre tracée MonObjGfx.DrawString(Descriptions(i), legende, Brushes.Black(), ((i + 1) * lepas), hauteurGraph - 15) Next ' on ajoute les échelles de gauche MonObjGfx.DrawString("0", legende, Brushes.Black(), 5, hauteurGraph - 27) ' valeur 0 MonObjGfx.DrawString((ValHaut / 2).ToString, legende, Brushes.Black(), 5, Int32.Parse((hauteurGraph / 2))) ' valeur moyenne MonObjGfx.DrawString(ValHaut.ToString, legende, Brushes.Black(), 5, (hauteurGraph - (hauteurGraph - 25))) ' valeur Haute ' on trace la ligne de moyenne MonObjGfx.DrawLine(Pens.Orange, lepas, Int32.Parse((hauteurGraph / 2) + 5), Int32.Parse((largeurGraph - (lepas / 2))), Int32.Parse((hauteurGraph / 2) + 5)) ' on retourne le graphique ainsi généré en bitmat tracegraph = MaBitMap Catch MonObjGfx.DrawString("Appel de fonction incorrecte !!!", legende, Brushes.Red, 5, Int32.Parse((hauteurGraph / 2))) ' valeur moyenne tracegraph = MaBitMap End Try End Function End Class
10 juin 2008 à 23:21
3 oct. 2004 à 19:50
1 oct. 2004 à 19:57
12 déc. 2003 à 18:43
je trouve ton programme trés interessant , mais je n'ai jamais travaillé avec une classe en asp ,peut tu me dire comme faire?doit-je enregistrer la classe comme dll ?et comment l'appeler ?
merci d'avance :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.