public void Draw(AbstractCanvas canvas) { canvas.Bmp.Lock(); brush.DrawLine(canvas.Bmp, begin.X, begin.Y, end.X, end.Y, drawFirstDot); canvas.Bmp.Unlock(); }
public void Draw(AbstractCanvas canvas) { //случай линии if (figure.dotlist.Count == 2) { Drawline drawer = new Drawline(figure.dotlist[0].X, figure.dotlist[0].Y, figure.dotlist[1].X, figure.dotlist[1].Y, brush, true); drawer.Draw(canvas); return; } BitmapWrap tmp = new BitmapWrap(canvas.Width, canvas.Height); tmp.Lock(); IBrush tmpBrush = new SquareBrush(1, fill.FillColor); tmpBrush.DrawLine(tmp, figure.dotlist[0].X, figure.dotlist[0].Y, figure.dotlist[1].X, figure.dotlist[1].Y, true); for (int i = 1; i < figure.dotlist.Count - 1; i++) { tmpBrush.DrawLine(tmp, figure.dotlist[i].X, figure.dotlist[i].Y, figure.dotlist[i + 1].X, figure.dotlist[i + 1].Y); } tmpBrush.DrawLine(tmp, figure.dotlist[figure.dotlist.Count - 1].X, figure.dotlist[figure.dotlist.Count - 1].Y, figure.dotlist[0].X, figure.dotlist[0].Y); if (figure.IsInside(figure.center)) { fill.Fill(tmp, figure.center); } if (!(fill is OnlyFill)) { brush.DrawLine(tmp, figure.dotlist[0].X, figure.dotlist[0].Y, figure.dotlist[1].X, figure.dotlist[1].Y, true); for (int i = 1; i < figure.dotlist.Count - 1; i++) { brush.DrawLine(tmp, figure.dotlist[i].X, figure.dotlist[i].Y, figure.dotlist[i + 1].X, figure.dotlist[i + 1].Y); } brush.DrawLine(tmp, figure.dotlist[figure.dotlist.Count - 1].X, figure.dotlist[figure.dotlist.Count - 1].Y, figure.dotlist[0].X, figure.dotlist[0].Y); } tmp.Unlock(); Graphics g = Graphics.FromImage(canvas.Bmp.Bmp); g.DrawImage(tmp.Bmp, new System.Drawing.Rectangle(0, 0, canvas.Width, canvas.Height)); }
public void MouseMove(PictureBox sheet, IBrush brush, IFill fill, MouseEventArgs e) { if (cursorActive == true) { x2 = e.X; y2 = e.Y; brush.DrawLine(Canvas.GetCanvas.Bmp, x1, y1, x2, y2, false); x1 = x2; y1 = y2; Canvas.GetCanvas.WriteToPictureBox(sheet); } }