예제 #1
0
 public override void Draw(Graphics gp)
 {
     //Closed Curve phải có tối thiểu 3 điểm để vẽ
     //Nếu ít hơn 3 điểm, thì vẽ các điểm hiện có
     if (LPoints.Count < 3)
     {
         using (var tmpBrush = new SolidBrush(Pen.Color))
             LPoints.ForEach(p => gp.FillRectangle(tmpBrush, new Rectangle(p.X - 3, p.Y - 3, 6, 6)));
         return;
     }
     GPPaths.Reset();
     GPPaths.AddClosedCurve(LPoints.ToArray());
     if (IsFilled)
     {
         gp.FillClosedCurve(Brush, LPoints.ToArray());
     }
     if (IsDrawBorder)
     {
         gp.DrawClosedCurve(Pen, LPoints.ToArray());
     }
     if (IsSelected)
     {
         using (var brush = new SolidBrush(Color.Blue))
             LPoints.ForEach(p => gp.FillRectangle(brush, new Rectangle(p.X - 3, p.Y - 3, 6, 6)));
     }
 }
예제 #2
0
 public override void AddPoint(Point p)
 {
     LPoints.Add(p);
 }