int widthForm, heightForm; // размеры основной формы #endregion Fields #region Constructors public FormSprite() { InitializeComponent(); widthForm = this.Size.Width; heightForm = this.Size.Height; stepNet = 10; stepShift = 1; toolStripLabelXW.Text = "xW=" + this.Size.Width; toolStripLabelYW.Text = "yW=" + this.Size.Height; toolStripComboBoxWidthPen.SelectedIndex = 2; toolStripComboBoxStepNet.SelectedIndex = 0; toolStripComboBoxShift.SelectedIndex = 0; graph = new Graph(picture.Width, picture.Height); sprite = new Sprite(); currPens = new DataSprite.Pens(ColorTranslator.ToHtml(Color.Black), 3); currFigure = new MyLine(currPens, 1, 1, 1, 1); flagLine = false; picture.Image = graph.GetBitmap; }
private void picture_MouseDown(object sender, MouseEventArgs e) { if(e.Button == MouseButtons.Left) // Когда нажимаем левую кнопку мыши { if(toolStripButtonLine.Checked) // Если выбрана обычная линия { currFigure = new MyLine(currPens, e.X, e.Y, 1, 1); // То создаем новый объект линии } else if (toolStripButtonBrokenLine.Checked) // Если выбрана ломанная линия { if(flagLine) // То проверяем, начинаем или продолжаем рисовать ломаную { sprite.AddFigure(currFigure); // Если продолжаем, то добавляем в список линию RefreshBitMap(); } currFigure = new MyLine(currPens, e.X, e.Y, 1, 1); // И создаем новую линию flagLine = true; } else if (toolStripButtonRectangle.Checked) // Если выбран прямоугольник { currFigure = new MyRectangle(currPens, e.X, e.Y, 1, 1); } else if (toolStripButtonEllipse.Checked) // Если выбран эллипс { currFigure = new MyEllipse(currPens, e.X, e.Y, 1, 1); } } if(e.Button==MouseButtons.Right && flagLine) // Когда нажимаем правую кнопку мыши { flagLine = false; // Прекращаем рисовать ломаные линии graph.Clear(); RefreshBitMap(); // Перерисовываем } }
/// <summary> /// Добавляет фигуру в спрайт /// </summary> /// <param name="figure"></param> public void AddFigure(Figure figure) { figures.Add(figure); }