Cet article présentera. Comment utiliser le code pour dessiner des graphiques dans Net, tout comme les graphiques générés avec MS Excel. Vous pouvez également dessiner un tableau comme DataGrid.
exister. Net, Microsoft nous fournit la classe de dessin (System.Drawing.Imaging), qui possède les fonctions de base du dessin. Par exemple : des lignes droites, des polylignes, des rectangles, des polygones, des ovales, des secteurs, des courbes, etc., afin que des graphiques généraux puissent être dessinés directement via le code. Ensuite, nous introduisons quelques fonctions de dessin :
Bitmap bMap=new Bitmap(500,500) //Définir la taille de l'image ;
bMap.Save(Stream,ImageCodecInfo) //Enregistre l'image dans le flux de sortie spécifié ;
Graphics gph //Définir ou créer un objet de dessin GDI ;
PointF cPt //Définir les coordonnées x, y dans le plan bidimensionnel ;
DrawString(string,Font,Brush,PonitF) //Utilisez les objets Brush et Font spécifiés pour dessiner la chaîne spécifiée au niveau du rectangle ou du point spécifié ;
DrawLine(Pen,Ponit,Ponit) //Utilisez l'objet stylo (Pen) spécifié pour tracer une ligne droite entre les deux points spécifiés ;
DrawPolygon(Pen,Ponit[]) //Utilisez l'objet stylo spécifié (Pen) pour dessiner le polygone spécifié, tel qu'un triangle, un quadrilatère, etc.;
FillPolygon(Brush,Ponit[]) //Remplissez le polygone spécifié avec l'objet pinceau (Brush) spécifié ;
DrawEllipse(Pen,x,y,Width,Height) //Utilisez le stylo spécifié pour dessiner une ellipse définie par la bordure ;
FillEllipse(Brush,x,y,Width,Height) //Utilisez le pinceau spécifié pour remplir une ellipse définie par la bordure ;
DrawRectangle(Pen,x,y,Width,Height) //Utilisez le stylo spécifié pour dessiner un rectangle avec les points de coordonnées, la largeur et la hauteur spécifiés ;
DrawPie(Pen,x,y,Width,Height,startAngle,sweepAngle) //Utilisez le stylo spécifié pour dessiner un secteur composé du point de coordonnées spécifié, de la largeur, de la hauteur et de deux rayons ;
OK, c'est tout. Les paramètres ont été abrégés. Je crois que dans le processus d'utilisation réel, tout le monde vivra une expérience plus profonde. Enfin, voyons comment utiliser ces fonctions de dessin (graphique linéaire) à travers un exemple simple.
Le code pour dessiner le graphique linéaire ci-dessus est le suivant :
//initialisation des données
string[] mois=new string[12]{"Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août" ,"Septembre","Octobre" ,"Novembre","Décembre"};
float[] d=nouveau float[12]{20.5F,60,10.8F,15.6F,30,70.9F,50.3F,30.7F,70,50.4F,30.8F,20};
//Initialisation du dessin
Bitmap bMap=nouveau Bitmap(500 500) ;
Graphiques gph=Graphics.FromImage(bMap);
gph.Clear(Color.White);
PointF cPt=new PointF(40,420);//point central
PointF[] xPt=nouveau PointF[3]{nouveau PointF(cPt.Y+15,cPt.Y),nouveau PointF(cPt.Y,cPt.Y-8),nouveau PointF(cPt.Y,cPt.Y+ 8 )};//Triangle de l'axe X
PointF[] yPt=nouveau PointF[3]{nouveau PointF(cPt.X,cPt.X-15),nouveau PointF(cPt.X-8,cPt.X),nouveau PointF(cPt.X+8,cPt. X)};//Triangle de l'axe Y
gph.DrawString("Graphique du volume de production mensuel d'un certain produit dans une usine", new Font("宋体", 14), Brushes.Black, new PointF(cPt.X+60, cPt.X));//Chart titre
//Dessiner l'axe X
gph.DrawLine(Pens.Black, cPt.X, cPt.Y, cPt.Y, cPt.Y);
gph.DrawPolygon(Pens.Black,xPt);
gph.FillPolygon(nouveau SolidBrush(Color.Black),xPt);
gph.DrawString("Mois", new Font("宋体", 12), Brushes.Black, new PointF(cPt.Y+10, cPt.Y+10));
//Dessiner l'axe Y
gph.DrawLine(Pens.Black, cPt.X, cPt.Y, cPt.X, cPt.X);
gph.DrawPolygon(Pens.Black,yPt);
gph.FillPolygon(nouveau SolidBrush(Color.Black),yPt);
gph.DrawString("Unit (10 000)", new Font("宋体", 12), Brushes.Black, new PointF(0, 7));
pour(int i=1;i<=12;i++)
{
//Dessiner l'échelle de l'axe Y
si (i<11)
{
gph.DrawString((i*10).ToString(), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X-30, cPt.Yi*30-6));
gph.DrawLine(Pens.Black, cPt.X-3,cPt.Yi*30,cPt.X,cPt.Yi*30);
}
//Dessiner les éléments de l'axe X
gph.DrawString(mois[i-1].Substring(0,1), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X+i*30-5, cPt.Y+5 ));
gph.DrawString(mois[i-1].Substring(1,1), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X+i*30-5, cPt.Y+20 ));
if(month[i-1].Length>2) gph.DrawString(month[i-1].Substring(2,1), new Font("宋体", 11), Brushes.Black, new PointF(cPt. X+i*30-5, cPt.Y+35));
//dessine des points
gph.DrawEllipse(Pens.Black,cPt.X+i*30-1.5F,cPt.Yd[i-1]*3-1.5F,3,3);
gph.FillEllipse(nouveau SolidBrush(Color.Black),cPt.X+i*30-1.5F,cPt.Yd[i-1]*3-1.5F,3,3);
//dessine des valeurs numériques
gph.DrawString(d[i-1].ToString(), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X+i*30,cPt.Yd[i-1]*3 ));
//Dessine une polyligne
if(i>1) gph.DrawLine(Pens.Red,cPt.X+(i-1)*30,cPt.Yd[i-2]*3,cPt.X+i*30,cPt.Yd[i- 1]*3);
}
//Enregistre l'image de sortie
bMap.Save(Response.OutputStream, ImageFormat.Gif) ;
http://www.cnblogs.com/172838427/archive/2006/09/19/508688.html
;