Artikel ini akan memperkenalkan. Cara menggunakan kode untuk menggambar grafik di Net, seperti grafik yang dibuat dengan MS Excel. Anda juga bisa menggambar tabel seperti DataGrid.
ada. Net, Microsoft memberi kita kelas menggambar (System.Drawing.Imaging), yang memiliki fungsi dasar menggambar. Misalnya: garis lurus, polyline, persegi panjang, poligon, oval, sektor, kurva, dll, sehingga grafik umum dapat digambar langsung melalui kode. Selanjutnya, kami memperkenalkan beberapa fungsi menggambar:
Bitmap bMap=Bitmap baru(500.500) //Tentukan ukuran gambar;
bMap.Save(Stream,ImageCodecInfo) //Simpan gambar ke aliran keluaran yang ditentukan;
Graphics gph //Mendefinisikan atau membuat objek gambar GDI;
PointF cPt //Tentukan koordinat x, y pada bidang dua dimensi;
DrawString(string,Font,Brush,PonitF) //Gunakan objek Brush dan Font yang ditentukan untuk menggambar string yang ditentukan pada persegi panjang atau titik yang ditentukan;
DrawLine(Pen,Ponit,Ponit) //Gunakan objek pena (Pen) yang ditentukan untuk menggambar garis lurus antara dua titik yang ditentukan;
DrawPolygon(Pen,Ponit[]) //Gunakan objek pena (Pen) yang ditentukan untuk menggambar poligon yang ditentukan, seperti segitiga, segi empat, dll.;
FillPolygon(Brush,Ponit[]) //Isi poligon yang ditentukan dengan objek kuas (Brush) yang ditentukan;
DrawEllipse(Pen,x,y,Width,Height) //Gunakan pena yang ditentukan untuk menggambar elips yang ditentukan oleh batas;
FillEllipse(Brush,x,y,Width,Height) //Gunakan kuas yang ditentukan untuk mengisi elips yang ditentukan oleh batas;
DrawRectangle(Pen,x,y,Width,Height) //Gunakan pena yang ditentukan untuk menggambar persegi panjang dengan titik koordinat, lebar, dan tinggi yang ditentukan;
DrawPie(Pen,x,y,Width,Height,startAngle,sweepAngle) //Gunakan pena yang ditentukan untuk menggambar sektor yang terdiri dari titik koordinat, lebar, tinggi, dan dua sinar yang ditentukan;
Oke, itu saja. Parameternya sudah disingkat. Saya percaya bahwa dalam proses penggunaan sebenarnya, setiap orang akan memiliki pengalaman yang lebih dalam. Terakhir, mari kita lihat cara menggunakan fungsi gambar (diagram garis) ini melalui contoh sederhana.
Kode untuk menggambar diagram garis di atas adalah sebagai berikut:
//inisialisasi data
string[] bulan=string baru[12]{"Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus" ,"September", "Oktober" ,"November","Desember"};
float[] d=float baru[12]{20.5F,60,10.8F,15.6F,30,70.9F,50.3F,30.7F,70,50.4F,30.8F,20};
//Inisialisasi gambar
Bitmap bMap=Bitmap baru(500.500);
Grafik gph=Graphics.FromImage(bMap);
gph.Clear(Color.White);
PointF cPt=New PointF(40,420);//titik tengah
TitikF[] xPt=TitikF baru[3]{TitikF baru(cPt.Y+15,cPt.Y),TitikF baru(cPt.Y,cPt.Y-8),TitikF baru(cPt.Y,cPt.Y+ 8 )};//segitiga sumbu X
TitikF[] yPt=TitikF baru[3]{TitikF baru(cPt.X,cPt.X-15),TitikF baru(cPt.X-8,cPt.X),TitikF baru(cPt.X+8,cPt. X)};//segitiga sumbu Y
gph.DrawString("Grafik volume produksi bulanan produk tertentu di pabrik", new Font("宋体", 14), Brushes.Black, new PointF(cPt.X+60, cPt.X));//Chart judul
//Gambar sumbu X
gph.DrawLine(Pena.Hitam, cPt.X,cPt.Y ,cPt.Y,cPt.Y);
gph.DrawPolygon(Pena.Hitam,xPt);
gph.FillPolygon(SolidBrush baru(Warna.Hitam),xPt);
gph.DrawString("Bulan", Font baru("宋体", 12), Brushes.Black, PointF baru(cPt.Y+10, cPt.Y+10));
//Gambar sumbu Y
gph.DrawLine(Pena.Hitam, cPt.X,cPt.Y,cPt.X,cPt.X);
gph.DrawPolygon(Pena.Hitam,yPt);
gph.FillPolygon(SOLIDBrush baru(Warna.Hitam),yPt);
gph.DrawString("Unit (10.000)", Font baru("宋体", 12), Brushes.Black, PointF baru(0, 7));
untuk(int i=1;i<=12;i++)
{
//Gambar skala sumbu Y
jika (saya<11)
{
gph.DrawString((i*10).ToString(), Font baru("宋体", 11), Brushes.Black, PointF baru(cPt.X-30, cPt.Yi*30-6));
gph.DrawLine(Pena.Hitam, cPt.X-3,cPt.Yi*30,cPt.X,cPt.Yi*30);
}
//Gambar item sumbu X
gph.DrawString(bulan[i-1].Substring(0,1), Font baru("宋体", 11), Brushes.Black, PointF baru(cPt.X+i*30-5, cPt.Y+5 ));
gph.DrawString(bulan[i-1].Substring(1,1), Font baru("宋体", 11), Brushes.Black, PointF baru(cPt.X+i*30-5, cPt.Y+20 ));
if(bulan[i-1].Panjang>2) gph.DrawString(bulan[i-1].Substring(2,1), Font baru("宋体", 11), Brushes.Black, PointF baru(cPt. X+i*30-5, cPt.Y+35));
//menggambar titik
gph.DrawEllipse(Pena.Hitam,cPt.X+i*30-1.5F,cPt.Yd[i-1]*3-1.5F,3,3);
gph.FillEllipse(SolidBrush baru(Warna.Hitam),cPt.X+i*30-1.5F,cPt.Yd[i-1]*3-1.5F,3,3);
//gambar nilai numerik
gph.DrawString(d[i-1].ToString(), Font baru("宋体", 11), Brushes.Black, PointF baru(cPt.X+i*30,cPt.Yd[i-1]*3 ));
//Gambarlah sebuah polyline
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);
}
//Simpan gambar keluaran
bMap.Simpan(Respon.OutputStream, ImageFormat.Gif);
http://www.cnblogs.com/172838427/archive/2006/09/19/508688.html