public System.Drawing.Bitmap Render() { Bitmap bmp = new Bitmap(_width, _height); Graphics graph = Graphics.FromImage(bmp); Color x = Color.FromArgb(237, 243, 251); graph.FillRectangle(new SolidBrush(x), -1, -1, bmp.Width + 1, bmp.Height + 1); float maxvalue = (float)ComputeMaxValue(); computevalues(); yscale = (float)(400.0 / 75.0); xscale = (float)(500.0 / maxvalue); //graph.ScaleTransform(1,-1); //graph.TranslateTransform(40,-(_height-20)); CJumboGraphics cs = new CJumboGraphics(graph); cs.SetViewPortOrig(40, _height - 40); DrawAxis(cs); DrawAxisText(cs); DrawCircles(cs); PlotData(cs); return(bmp); }
public void DrawAxis(CJumboGraphics graph) { Pen pen = new Pen(Color.Red); // // Vertical Axis graph.DrawLine(pen, 0, 0, 0, (int)(75.0 * yscale)); // // // double mxx = ComputeMaxValue(); graph.DrawLine(pen, 0, 0, (int)(xscale * mxx), 0); }
public void DrawCircles(CJumboGraphics g) { int len = df.Length; Pen pens = new Pen(Color.Navy); SolidBrush ns = new SolidBrush(Color.Chocolate); for (int i = 0; i < len; ++i) { //g.DrawEllipse( pens,df[i].X *xscale,df[i].Y*yscale,5,5); if ((df[i].X != 0) && (df[i].Y != 0)) { g.FillEllipse(ns, (int)(df[i].X * xscale), (int)(df[i].Y * yscale), 5, 5); } } }
public void PlotData(CJumboGraphics g) { Pen pen = new Pen(Color.Brown); // g.DrawLine(pen,(float)_xaxis[0]*xscale,(float)_yaxis[0]*yscale,(float)_xaxis[0]*xscale ,(float) _yaxis[0]*yscale); float oldx = (float)_xaxis[0] * xscale; float oldy = (float)_yaxis[0] * yscale; for (int i = 1; i < 180; ++i) { g.DrawLine(pen, (int)oldx, (int)oldy, (int)(_xaxis[i] * xscale), (int)(_yaxis[i] * yscale)); oldx = (float)_xaxis[i] * xscale; oldy = (float)_yaxis[i] * yscale; } }
public void DrawAxisText(CJumboGraphics g) { Pen pen = new Pen(Color.Green); Font fl = new Font("Verdana", 9, System.Drawing.FontStyle.Regular); SolidBrush brs = new SolidBrush(Color.Black); //Matrix mt = new Matrix(); for (int i = 5; i <= 75; i += 5) { String str = Convert.ToString(i); // Matrix m = g.Transform; // Point[] fr = new Point[1]; // fr[0] = new Point(-15,(int)(i*yscale)); // g.TransformPoints(CoordinateSpace.Device ,CoordinateSpace.World , fr ); // g.Transform = mt; // g.DrawString(str,fl,brs,fr[0].X ,fr[0].Y ); g.DrawString(str, fl, brs, -15, (int)(i * yscale)); // g.Transform = m; g.DrawLine(pen, -5, (int)(i * yscale), 5, (int)(i * yscale)); } int mx = (int)ComputeMaxValue(); int addendum = mx / 10; for (int i = 0; i < mx; i += addendum) { String str = Convert.ToString(i); // Matrix m = g.Transform; // Point[] fr = new Point[1]; // fr[0] = new Point((int)(i*xscale),-2); // g.TransformPoints(CoordinateSpace.Device ,CoordinateSpace.World , fr ); // g.Transform = mt; //g.DrawString(str,fl,brs,fr[0].X ,fr[0].Y ); g.DrawString(str, fl, brs, (int)(i * xscale), -2); //g.Transform = m; if (i != 0) { g.DrawLine(pen, (int)(i * xscale), 10, (int)(i * xscale), 0); } } }