سيتم تقديم هذه المقالة في. كيفية استخدام التعليمات البرمجية لرسم المخططات في Net، تمامًا مثل المخططات التي تم إنشاؤها باستخدام MS Excel. يمكنك أيضًا رسم جدول مثل DataGrid.
يخرج. Net، توفر لنا شركة مايكروسوفت فئة الرسم (System.Drawing.Imaging) والتي لها وظائف الرسم الأساسية. على سبيل المثال: الخطوط المستقيمة، والخطوط المتعددة، والمستطيلات، والمضلعات، والأشكال البيضاوية، والقطاعات، والمنحنيات، وما إلى ذلك، بحيث يمكن رسم الرسومات العامة مباشرة من خلال الكود. بعد ذلك، نقدم بعض وظائف الرسم:
Bitmap bMap=new Bitmap(500,500) // تحديد حجم الصورة;
bMap.Save(Stream,ImageCodecInfo) // احفظ الصورة في دفق الإخراج المحدد؛
الرسومات gph // تعريف أو إنشاء كائن رسومي GDI؛
PointF cPt // تحديد إحداثيات x و y في المستوى ثنائي الأبعاد؛
DrawString(string,Font,Brush,PonitF) // استخدم كائنات الفرشاة والخط المحددة لرسم السلسلة المحددة عند المستطيل أو النقطة المحددة؛
DrawLine(Pen,Ponit,Ponit) // استخدم كائن القلم المحدد (القلم) لرسم خط مستقيم بين النقطتين المحددتين؛
DrawPolygon(Pen,Ponit[]) // استخدم كائن القلم المحدد (القلم) لرسم المضلع المحدد، مثل المثلث والرباعي وما إلى ذلك؛
fillPolygon(Brush,Ponit[]) // املأ المضلع المحدد بكائن الفرشاة (الفرشاة) المحدد ؛
DrawEllipse(Pen,x,y,Width,Height) // استخدم القلم المحدد لرسم شكل بيضاوي محدد بالحدود؛
fillEllipse(Brush,x,y,Width,Height) // استخدم الفرشاة المحددة لملء الشكل البيضاوي المحدد بالحدود؛
DrawRectangle(Pen,x,y,Width,Height) // استخدم القلم المحدد لرسم مستطيل بنقاط الإحداثيات والعرض والارتفاع المحددة؛
DrawPie(Pen,x,y,Width,Height,startAngle,sweepAngle) // استخدم القلم المحدد لرسم قطاع يتكون من نقطة الإحداثيات المحددة والعرض والارتفاع وشعاعين؛
حسنًا، هذا كل شيء، لقد تم اختصار المعلمات. أعتقد أنه في عملية الاستخدام الفعلي، سيكون لدى الجميع تجربة أعمق. أخيرًا، دعونا نلقي نظرة على كيفية استخدام وظائف الرسم هذه (المخطط الخطي) من خلال مثال بسيط.
الكود لرسم المخطط الخطي أعلاه هو كما يلي:
// تهيئة البيانات
string[] Month=new string[12]{"يناير"، "فبراير"، "مارس"، "أبريل"، "مايو"، "يونيو"، "يوليو"، "أغسطس" "،سبتمبر"، "أكتوبر" ""نوفمبر"،"ديسمبر"};
float[] d=new float[12]{20.5F,60,10.8F,15.6F,30,70.9F,50.3F,30.7F,70,50.4F,30.8F,20};
// تهيئة الرسم
Bitmap bMap=new Bitmap(500,500);
الرسومات gph=Graphics.FromImage(bMap);
(
Color.White);
PointF[] xPt=new PointF[3]{new PointF(cPt.Y+15,cPt.Y),new PointF(cPt.Y,cPt.Y-8),new PointF(cPt.Y,cPt.Y+ 8) )};// مثلث المحور السيني
PointF[] yPt=new PointF[3]{new PointF(cPt.X,cPt.X-15),new PointF(cPt.X-8,cPt.X),new PointF(cPt.X+8,cPt. X)};// مثلث المحور ص
gph.DrawString("مخطط حجم الإنتاج الشهري لمنتج معين في المصنع", new Font("宋体", 14), Brushes.Black, new PointF(cPt.X+60, cPt.X));//Chart عنوان
// ارسم المحور X
gph.DrawLine(Pens.Black, cPt.X,cPt.Y ,cPt.Y,cPt.Y);
gph.DrawPolygon(Pens.Black,xPt);
gph.FillPolygon(new SolidBrush(Color.Black),xPt);
gph.DrawString("Month", new Font("宋体", 12), Brushes.Black, new PointF(cPt.Y+10, cPt.Y+10));
// ارسم المحور ص
gph.DrawLine(Pens.Black, cPt.X,cPt.Y,cPt.X,cPt.X);
gph.DrawPolygon(Pens.Black,yPt);
gph.FillPolygon(new SolidBrush(Color.Black),yPt);
gph.DrawString("Unit (10,000)", new Font("宋体", 12), Brushes.Black, new PointF(0, 7));
ل(int i=1;i<=12;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);
}
// ارسم عناصر المحور السيني
gph.DrawString(month[i-1].Substring(0,1), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X+i*30-5, cPt.Y+5 ));
gph.DrawString(month[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));
// ارسم النقاط
gph.DrawEllipse(Pens.Black,cPt.X+i*30-1.5F,cPt.Yd[i-1]*3-1.5F,3,3);
gph.FillEllipse(new SolidBrush(Color.Black),cPt.X+i*30-1.5F,cPt.Yd[i-1]*3-1.5F,3,3);
// ارسم القيم العددية
gph.DrawString(d[i-1].ToString(), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X+i*30,cPt.Yd[i-1]*3 ));
// ارسم خطًا متعدد الخطوط
إذا (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);
}
// احفظ الصورة الناتجة
bMap.Save(Response.OutputStream, ImageFormat.Gif);
http://www.cnblogs.com/172838427/archive/2006/09/19/508688.html;