Эта статья познакомит вас. Как использовать код для рисования диаграмм в Net, точно так же, как диаграммы, созданные с помощью MS Excel. Вы также можете нарисовать таблицу, например DataGrid.
существовать. Net Microsoft предоставляет нам класс рисования (System.Drawing.Imaging), который имеет основные функции рисования. Например: прямые линии, ломаные линии, прямоугольники, многоугольники, овалы, сектора, кривые и т. д., поэтому общую графику можно рисовать непосредственно через код. Далее мы представляем некоторые функции рисования:
Растровое изображение bMap=new Bitmap(500,500) //Определение размера изображения;
bMap.Save(Stream,ImageCodecInfo) //Сохраняем изображение в указанный выходной поток;
Graphics gph //Определите или создайте объект рисования GDI;
PointF cPt //Определяем координаты x, y в двумерной плоскости;
DrawString(string,Font,Brush,PonitF) //Используйте указанные объекты Brush и Font для рисования указанной строки в указанном прямоугольнике или точке;
DrawLine(Pen,Ponit,Ponit) //Используйте указанный объект пера (Pen), чтобы нарисовать прямую линию между указанными двумя точками;
DrawPolygon(Pen,Ponit[]) //Используем указанный объект пера (Pen) для рисования указанного многоугольника, например треугольника, четырехугольника и т. д.;
FillPolygon(Brush,Ponit[]) //Заполняем указанный многоугольник указанным объектом кисти (Brush);
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=новый float[12]{20.5F,60,10.8F,15.6F,30,70.9F,50.3F,30.7F,70,50.4F,30.8F,20};
//Инициализация рисования
Растровое изображение bMap=новое растровое изображение (500 500);
Графика gph=Graphics.FromImage(bMap);
gph.Clear(Color.White);
PointF cPt=new PointF(40,420);//центральная точка
PointF[] xPt=новый PointF[3]{новый PointF(cPt.Y+15,cPt.Y),новый PointF(cPt.Y,cPt.Y-8),новый PointF(cPt.Y,cPt.Y+ 8) )};//треугольник по оси X
PointF[] yPt=новый PointF[3]{новый PointF(cPt.X,cPt.X-15),новый PointF(cPt.X-8,cPt.X),новый PointF(cPt.X+8,cPt. X)};//треугольник оси Y
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(новый SolidBrush(Color.Black),xPt);
gph.DrawString("Month", new Font("宋体", 12), Brushes.Black, new PointF(cPt.Y+10, cPt.Y+10));
//Рисуем ось Y
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));
for(int i=1;i<=12;i++)
{
//Рисуем масштаб по оси Y
если (я<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);
}
//Рисуем элементы оси X
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), новый шрифт("宋体", 11), Brushes.Black, новый 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 ));
//Рисуем полилинию
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);
}
//Сохраняем выходное изображение
bMap.Save(Response.OutputStream, ImageFormat.Gif
http://www.cnblogs.com/172838427/archive/2006/09/19/508688.html
);