private void View_OnCreateFigureButton_Click(object sender, EventArgs e) { if (_pointsBuffer.Count == 0) { _view.ShowError(new Exception("Список точек пуст!")); return; } var factory = AppDependencies.CreataFactory(); var points = new Point[_pointsBuffer.Count]; for (int i = 0; i < points.Length; i++) { points[i] = (Point)_pointsBuffer[i]; } try { var figure = factory.Create(points); var color = _view.GetSelectedColor(); var figureDrawer = new FigureDrawer( new FiguresDataAdapter(figure), color, System.Drawing.Color.Black, System.Drawing.Color.Black ); _figuresBuffer.Add(figureDrawer); _outFigures.Add(figureDrawer); } catch (Exception err) { _view.ShowError(err); } }
/// <inheritdoc /> /// <summary> /// Рисовка создаваемой фигуры /// </summary> /// <param name="g"></param> public override void Draw(Graphics g) { if (_line != null) { FigureDrawer.DrawFigure(_line, g); } }
public IEnumerable <FigureDrawer> Deserialize(string fileName) { var stream = new StreamReader(fileName); var xml = new XmlSerializer(typeof(List <XmlFigureData>)); var factory = AppDependencies.CreataFactory(); var figures = new List <FigureDrawer>(); var data = xml.Deserialize(stream); foreach (var item in data as List <XmlFigureData> ) { var figure = factory.Create(item.Points); var adapter = new FiguresDataAdapter(figure); var vertexColor = Color.FromName(ValidateColorName(item.VertexColorName)); var centerColor = Color.FromName(ValidateColorName(item.CenterColorName)); var penColor = Color.FromName(ValidateColorName(item.PenColorName)); var drawer = new FigureDrawer(adapter, penColor, vertexColor, centerColor); figures.Add(drawer); } return(figures); }
/// <inheritdoc /> /// <summary> /// Рисование выбранных фигур /// </summary> /// <param name="g">Graphics</param> public void Draw(Graphics g) { var pen = new Pen(Color.FromArgb(0, 120, 215), 1) { DashStyle = DashStyle.Solid }; Brush brush = new SolidBrush(Color.FromArgb(80, 0, 102, 204)); g.FillRectangle(brush, _selectionRect); g.DrawRectangle(pen, _selectionRect); pen.Dispose(); brush.Dispose(); if (SelectedFigures.Count != 0) { foreach (var figure in SelectedFigures) { FigureDrawer.DrawSelection(figure.Value, g); } } if (_selectedFigure != null && _isFigurePicked) { FigureDrawer.DrawSelection(_selectedFigure, g); } }
/// <summary> /// Обработчик события нажатия на пункт меню "Сохранить в PNG" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void exportToPngToolStripMenuItem_Click(object sender, EventArgs e) { var pictureBox = new PictureBox { Size = Canvas.Size }; var bitmap = new Bitmap(pictureBox.Width, pictureBox.Height); var bitmapGraphics = Graphics.FromImage(bitmap); foreach (var figure in _figures) { FigureDrawer.DrawFigure(figure.Value, bitmapGraphics); } pictureBox.BackColor = Color.White; pictureBox.Image = bitmap; if (_saveToPNGDialog.ShowDialog() != DialogResult.OK) { return; } try { pictureBox.Image.Save(_saveToPNGDialog.FileName); } catch (Exception) { throw new Exception(); } }
/// <inheritdoc /> /// <summary> /// Рисовка создаваемой фигуры /// </summary> /// <param name="g"></param> public override void Draw(Graphics g) { if (_polygon != null) { FigureDrawer.DrawFigure(_polygon, g); } }
private void btnFigure_Click(object sender, EventArgs e) { canvas.Enabled = true; if (lsbPictures.Items.Count >= imagesCount) { lsbPictures.Items.RemoveAt(0); imageList.RemoveAt(0); } figureCreator = creatorList[Convert.ToInt32((sender as Button).Tag.ToString())]; figure = figureCreator.CreateFigure(); figureDrawer = drawerList[Convert.ToInt32((sender as Button).Tag.ToString())]; figureInitializer = initializerList[Convert.ToInt32((sender as Button).Tag.ToString())]; }
/// <summary> /// Обработчик события рисования PictureBox /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pbCanvas_Paint(object sender, PaintEventArgs e) { var g = e.Graphics; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; if (_figures != null) { foreach (var figure in _figures) { FigureDrawer.DrawFigure(figure.Value, g); } } CurrentHandler?.Draw(g); }
static void Main(string[] args) { Random random = new Random(); int rand = random.Next(1, 3); Drawer figure = new FigureDrawer(); figure.Draw(rand); Figure figure1 = new Circle(0, 0, 10); Console.WriteLine(figure1.ToString()); Figure figure2 = new Rectangle(0, 0, 0, 5, 5, 5, 0, 5); Console.WriteLine(figure2.ToString()); Figure figure3 = new Triangle(0, 0, 3, 3, 0, 6); Console.WriteLine(figure3.ToString()); Console.ReadKey(); }
public FigureDrawnEventArgs(ListBox.ObjectCollection figures, PlaneSettings settings, FigureDrawer current) { Figures = figures; Settings = settings; CurrentFigure = current; }