Mega Code Archive

 
Categories / C# / 2D Graphics
 

Scribble with Path

using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;     class ScribbleWithPath: Form {      GraphicsPath path= new GraphicsPath();      bool         bTracking;      Point        ptLast;          public static void Main()      {           Application.Run(new ScribbleWithPath());      }      protected override void OnMouseDown(MouseEventArgs mea)      {           if (mea.Button != MouseButtons.Left)                return;               ptLast = new Point(mea.X, mea.Y);           bTracking = true;               path.StartFigure();      }      protected override void OnMouseMove(MouseEventArgs mea)      {           if (!bTracking)                return;               Point ptNew = new Point(mea.X, mea.Y);                      Graphics grfx = CreateGraphics();           grfx.DrawLine(new Pen(ForeColor), ptLast, ptNew);           grfx.Dispose();               path.AddLine(ptLast, ptNew);               ptLast = ptNew;      }      protected override void OnMouseUp(MouseEventArgs mea)      {           bTracking = false;      }      protected override void OnPaint(PaintEventArgs pea)      {           pea.Graphics.DrawPath(new Pen(ForeColor), path);      } }