Exemple #1
0
        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);
            }
        }
Exemple #2
0
 /// <inheritdoc />
 /// <summary>
 /// Рисовка создаваемой фигуры
 /// </summary>
 /// <param name="g"></param>
 public override void Draw(Graphics g)
 {
     if (_line != null)
     {
         FigureDrawer.DrawFigure(_line, g);
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
        /// <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);
     }
 }
Exemple #7
0
        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())];
        }
Exemple #8
0
        /// <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);
        }
Exemple #9
0
        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();
        }
Exemple #10
0
 public FigureDrawnEventArgs(ListBox.ObjectCollection figures, PlaneSettings settings, FigureDrawer current)
 {
     Figures       = figures;
     Settings      = settings;
     CurrentFigure = current;
 }