protected virtual void Draw (IGraphics g, int startIndex, int length, float thickness) { g.BeginEntity (this); if (length == 0) { } else if (length == 1) { var p = _points [startIndex]; var r = thickness / 2; g.FillOval (p.X - r, p.Y - r, thickness, thickness); } else { g.BeginLines (true); var end = startIndex + length; for (var i = startIndex; i < end - 1; i++) { g.DrawLine ( _points [i].X, _points [i].Y, _points [i + 1].X, _points [i + 1].Y, thickness); } g.EndLines (); } }
protected virtual void Draw(IGraphics g, int startIndex, int length, float thickness) { g.BeginEntity(this); if (length == 0) { } else if (length == 1) { var p = _points [startIndex]; var r = thickness / 2; g.FillOval(p.X - r, p.Y - r, thickness, thickness); } else { g.BeginLines(true); var end = startIndex + length; for (var i = startIndex; i < end - 1; i++) { g.DrawLine( _points [i].X, _points [i].Y, _points [i + 1].X, _points [i + 1].Y, thickness); } g.EndLines(); } }
public void Draw(IGraphics g) { g.BeginEntity(this); var now = DateTime.Now; var r = Math.Min(Width / 2, Height / 2); var center = new System.Drawing.PointF(Width / 2, Height / 2); // // Draw the face // g.SetColor(BackColor); g.FillOval(center.X - r, center.Y - r, 2 * r, 2 * r); g.SetColor(BorderColor); g.DrawOval(center.X - r, center.Y - r, 2 * r, 2 * r, 8); g.SetColor(FaceColor); for (var i = 0; i < 12; i++) { var angle = (i / 12.0) * 2 * Math.PI; g.DrawLine( center.X + 0.75f * r * (float)Math.Cos(angle), center.Y + 0.75f * r * (float)Math.Sin(angle), center.X + 0.9f * r * (float)Math.Cos(angle), center.Y + 0.9f * r * (float)Math.Sin(angle), 7); } g.SetFont(LabelFont); var textWidth = g.GetFontMetrics().StringWidth("Cross Graphics"); g.DrawString("Cross Graphics", center.X - textWidth / 2, center.Y + 0.25f * r); // // Draw the hour hand // g.SetColor(Colors.DarkGray); var h = now.Hour + now.Minute / 60.0; var hAngle = h > 12 ? ((h - 12) / 12.0 * 2 * Math.PI - Math.PI / 2) : (h / 12.0 * 2 * Math.PI - Math.PI / 2); g.DrawLine( center.X + -0.1f * r * (float)Math.Cos(hAngle), center.Y + -0.1f * r * (float)Math.Sin(hAngle), center.X + 0.65f * r * (float)Math.Cos(hAngle), center.Y + 0.65f * r * (float)Math.Sin(hAngle), 7); // // Draw the minute hand // g.SetColor(Colors.DarkGray); var m = now.Minute + now.Second / 60.0; var mAngle = (m / 60.0) * 2 * Math.PI - Math.PI / 2; g.DrawLine( center.X + -0.15f * r * (float)Math.Cos(mAngle), center.Y + -0.15f * r * (float)Math.Sin(mAngle), center.X + 0.85f * r * (float)Math.Cos(mAngle), center.Y + 0.85f * r * (float)Math.Sin(mAngle), 5); // // Draw the second hand // g.SetColor(Colors.Red); var sAngle = (now.Second / 60.0) * 2 * Math.PI - Math.PI / 2; g.DrawLine( center.X + -0.15f * r * (float)Math.Cos(sAngle), center.Y + -0.15f * r * (float)Math.Sin(sAngle), center.X + 0.85f * r * (float)Math.Cos(sAngle), center.Y + 0.85f * r * (float)Math.Sin(sAngle), 1); // // Draw the pin // g.SetColor(Colors.Black); g.FillOval(center.X - 5, center.Y - 5, 10, 10); }
public void Draw(IGraphics g) { g.BeginEntity (this); var now = DateTime.Now; var r = Math.Min (Width / 2, Height / 2); var center = new System.Drawing.PointF (Width / 2, Height / 2); // // Draw the face // g.SetColor (BackColor); g.FillOval (center.X - r, center.Y - r, 2 * r, 2 * r); g.SetColor (BorderColor); g.DrawOval (center.X - r + 4, center.Y - r + 4, 2 * r - 8, 2 * r - 8, 8); g.SetColor (FaceColor); for (var i = 0; i < 12; i++) { var angle = (i / 12.0) * 2 * Math.PI; g.DrawLine ( center.X + 0.75f * r * (float)Math.Cos (angle), center.Y + 0.75f * r * (float)Math.Sin (angle), center.X + 0.9f * r * (float)Math.Cos (angle), center.Y + 0.9f * r * (float)Math.Sin (angle), 7); } g.SetFont (LabelFont); var textWidth = g.GetFontMetrics ().StringWidth ("Cross Graphics"); g.DrawString ("Cross Graphics", center.X - textWidth / 2, center.Y + 0.25f * r); // // Draw the hour hand // g.SetColor (Colors.DarkGray); var h = now.Hour + now.Minute / 60.0; var hAngle = h > 12 ? ((h - 12) / 12.0 * 2 * Math.PI - Math.PI /2) : (h / 12.0 * 2 * Math.PI - Math.PI / 2); g.DrawLine ( center.X + -0.1f * r * (float)Math.Cos (hAngle), center.Y + -0.1f * r * (float)Math.Sin (hAngle), center.X + 0.65f * r * (float)Math.Cos (hAngle), center.Y + 0.65f * r * (float)Math.Sin (hAngle), 7); // // Draw the minute hand // g.SetColor (Colors.DarkGray); var m = now.Minute + now.Second / 60.0; var mAngle = (m / 60.0) * 2 * Math.PI - Math.PI / 2; g.DrawLine ( center.X + -0.15f * r * (float)Math.Cos (mAngle), center.Y + -0.15f * r * (float)Math.Sin (mAngle), center.X + 0.85f * r * (float)Math.Cos (mAngle), center.Y + 0.85f * r * (float)Math.Sin (mAngle), 5); // // Draw the second hand // g.SetColor (Colors.Red); var sAngle = (now.Second / 60.0) * 2 * Math.PI - Math.PI / 2; g.DrawLine ( center.X + -0.15f * r * (float)Math.Cos (sAngle), center.Y + -0.15f * r * (float)Math.Sin (sAngle), center.X + 0.85f * r * (float)Math.Cos (sAngle), center.Y + 0.85f * r * (float)Math.Sin (sAngle), 1); // // Draw the pin // g.SetColor (Colors.Black); g.FillOval (center.X - 5, center.Y - 5, 10, 10); }