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))); } }
public override void AddPoint(Point p) { LPoints.Add(p); }