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 Draw(Graphics gp) { gp.DrawCurve(Pen, LPoints.ToArray()); GPPaths.Reset(); GPPaths.AddCurve(LPoints.ToArray()); if (IsSelected) { using (var brush = new SolidBrush(Color.Blue)) LPoints.ForEach(p => gp.FillRectangle(brush, new Rectangle(p.X - 4, p.Y - 4, 8, 8))); } }
public override void Draw(Graphics gp) { gp.DrawLine(Pen, P1, P2); GPPaths.Reset(); GPPaths.AddLine(P1, P2); if (IsSelected) { Brush brush = new SolidBrush(Color.Blue); gp.FillRectangle(brush, P1.X - 3, P1.Y - 3, 6, 6); gp.FillRectangle(brush, P2.X - 3, P2.Y - 3, 6, 6); } }
public override void Draw(Graphics gp) { try { RectShape = DetectBound(); GPPaths.Reset(); GPPaths.AddArc(RectShape, StartAngle, SweepAngle); gp.DrawArc(Pen, RectShape, StartAngle, SweepAngle); if (IsSelected) { using (var pen = new Pen(Color.Blue) { Width = 2, DashStyle = System.Drawing.Drawing2D.DashStyle.Dash }) { gp.DrawRectangle(pen, RectShape); } } } catch { } }
public override void Draw(Graphics gp) { RectShape = DetectBound(); GPPaths.Reset(); GPPaths.AddEllipse(RectShape); if (IsFilled) { gp.FillEllipse(Brush, RectShape); } if (IsDrawBorder) { gp.DrawEllipse(Pen, RectShape); } if (IsSelected) { Brush brush = new SolidBrush(Color.Blue); gp.FillRectangle(brush, (P1.X + P2.X) / 2 - 4, P1.Y - 4, 8, 8); gp.FillRectangle(brush, (P1.X + P2.X) / 2 - 4, P2.Y - 4, 8, 8); gp.FillRectangle(brush, P1.X - 4, (P1.Y + P2.Y) / 2 - 4, 8, 8); gp.FillRectangle(brush, P2.X - 4, (P1.Y + P2.Y) / 2 - 4, 8, 8); } }
public override void Draw(Graphics gp) { GPPaths.Reset(); GPPaths.AddCurve(LPoints.ToArray()); if (IsFilled) { gp.FillPath(Brush, GPPaths); } if (IsDrawBorder) { gp.DrawPath(Pen, GPPaths); } if (IsSelected) { using (Brush brush = new SolidBrush(Color.Blue)) { for (int i = 0; i < LPoints.Count; i += 4) { gp.FillRectangle(brush, LPoints[i].X - 4, LPoints[i].Y - 4, 8, 8); } } } }