Ejemplo n.º 1
0
 /// <summary>
 /// Метод, выполняющий выделение фигуры
 /// </summary>
 /// <para name = "e">Переменная хранащая значение координат курсора мыши</para>
 /// <para name = "DrawObject">Переменная хранащая объект выделения</para>
 /// <para name = "SelectedFigures">Список выделенных объектов</para>
 public static void ScaleFigure(MouseEventArgs e, ObjectFugure DrawObject, List <ObjectFugure> SelectedFigures)
 {
     DrawObject.PointSelect  = DrawObject.Path.PathPoints;
     DrawObject.SelectFigure = true;
     //DrawObject.Pen.Width += 1;
     SelectedFigures.Add(DrawObject);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Метод, выполняющий сохранение фигур.
        /// </summary>
        /// <para name = "Currentfigure">Переменная, хранящая  текущую выбранную фигуру</para>
        /// <para name = "Points">Переменная, хранящая  координаты отрисовки фигуры</para>
        /// <para name = "FiguresBuild">Переменная, хранящая класс отрисовки</para>
        //public void MouseUp(List<PointF> points, MouseEventArgs e, Color linecolor, int thickness, DashStyle dashstyle, Color brushcolor)
        public void MouseUp(List <PointF> point)
        {
            Color linecolor  = Color.Red;
            Color brushcolor = Color.Red;

            DashStyle dashStyle = DashStyle.Solid;

            int thickness = 5;

            var _drawObject = new ObjectFugure(linecolor, thickness, dashStyle, new GraphicsPath())
            {
                FigureStart = point[0],
                FigureEnd   = point[1],
                IdFigure    = FiguresList.Count + 1
            };

            _drawObject.Path.AddRectangle(СonstructionFigure.ShowRectangleFloat(point[0], point[1]));

            _drawObject.DrawText();

            if (FiguresList.Count < 9)
            {
                FiguresList.Add(_drawObject);
            }

            RefreshBitmap();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Метод, выполняющий сохранение прямоугольника.
        /// </summary>
        /// <para name = "DrawObject">Переменна для хранения эллипса</para>
        /// <para name = "Points">Точки для построения эллипса</para>
        /// <para name = "FiguresBuild">Список комманд для хранения комманды построения эллипса</para>
        /// <para name = "Figures">Список объектов для хранения всех фигур</para>
        public static void AddFigure(ObjectFugure DrawObject, List <PointF> Points, List <ObjectFugure> Figures)
        {
            //_addFigureRectangle = new AddRectangle();
            //_addFigureRectangle.AddFigure(DrawObject, Points, Figures);

            //Figures.Add(_addFigureRectangle.Output());
            //FiguresBuild.Add(_addFigureRectangle);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Метод, выполняющий отрисовку опорных точек.
        /// </summary>
        /// <para name = "SelectObject">Переменная хранащая объект для которого нужно построить опорные точки</para>
        public static void AddSupportPoint(ObjectFugure SelectObject, Color ColorLine)
        {
            for (int i = 0; i < 4; i++)
            {
                SupportObjectFugure supportObjectFugure = new SupportObjectFugure(new Pen(ColorLine, 2), new GraphicsPath());
                supportObjectFugure.Path.AddEllipse(СonstructionFigure.SelectFigure(SelectObject.Path.PathPoints[i], SelectObject.Pen.Width));
                supportObjectFugure.IdFigure      = SelectObject.IdFigure;
                supportObjectFugure.ControlPointF = i;

                SelectObject.AddListFigure(supportObjectFugure);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Метод, выполняющий перемещение опорных точек.
        /// </summary>
        /// <para name = "CurrObj">Переменная, хранящая объект перемещения.</para>
        /// <para name = "DeltaX">Переменная, хранящая значение дельта X.</para>
        /// <para name = "DeltaY">Переменная, хранящая значение дельта Y.</para>
        public static void MoveObjectSupport(ObjectFugure CurrObj, int DeltaX, int DeltaY)
        {
            //if ((CurrObj.PointSelect[0].X - CurrObj.PointSelect[2].X != 0) && (CurrObj.PointSelect[0].Y - CurrObj.PointSelect[2].Y != 0))
            //{
            CurrObj.PointSelect = CurrObj.Path.PathPoints;
            //}

            for (int i = 0; i < 4; i++)
            {
                CurrObj.EditListFigure(i, СonstructionFigure.SelectFigure(CurrObj.PointSelect[i], CurrObj.Pen.Width));
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Метод, отвечающий за перемещение и масштабирование фигур.
        /// </summary>
        /// <para name = "SelectObject">Переменная хранащая объект для которого нужно выполнять действия</para>
        /// <para name = "SupportObj">Переменная хранащая опорные точки выбранного объекта</para>
        /// <para name = "DeltaX">Переменная хранащая разницу по координате X</para>
        /// <para name = "DeltaY">Переменная хранащая разницу по координате Y</para>
        /// /// <para name = "EdipParametr">Объекта класса необходимый для выполнения масштабирования</para>
        public static void ScaleSelectFigure(ObjectFugure SelectObject, SupportObjectFugure SupportObj, int DeltaX, int DeltaY)
        {
            if (SelectObject.IdFigure == SupportObj.IdFigure)
            {
                switch (SupportObj.ControlPointF)
                {
                case 0:

                    if (SelectObject.PointSelect[0].X + DeltaX < SelectObject.PointSelect[1].X)
                    {
                        SelectObject.PointSelect[0].X += DeltaX;
                    }

                    if (SelectObject.PointSelect[0].Y + DeltaY < SelectObject.PointSelect[3].Y)
                    {
                        SelectObject.PointSelect[0].Y += DeltaY;
                    }

                    break;

                case 1:

                    if (SelectObject.PointSelect[2].X + DeltaX > SelectObject.PointSelect[0].X)
                    {
                        SelectObject.PointSelect[2].X += DeltaX;
                    }

                    if (SelectObject.PointSelect[0].Y + DeltaY < SelectObject.PointSelect[2].Y)
                    {
                        SelectObject.PointSelect[0].Y += DeltaY;
                    }

                    break;

                case 2:

                    if (SelectObject.PointSelect[2].X + DeltaX > SelectObject.PointSelect[3].X)
                    {
                        SelectObject.PointSelect[2].X += DeltaX;
                    }

                    if (SelectObject.PointSelect[2].Y + DeltaY > SelectObject.PointSelect[1].Y)
                    {
                        SelectObject.PointSelect[2].Y += DeltaY;
                    }

                    break;

                case 3:

                    if (SelectObject.PointSelect[0].X + DeltaX < SelectObject.PointSelect[2].X)
                    {
                        SelectObject.PointSelect[0].X += DeltaX;
                    }

                    if (SelectObject.PointSelect[2].Y + DeltaY > SelectObject.PointSelect[0].Y)
                    {
                        SelectObject.PointSelect[2].Y += DeltaY;
                    }

                    break;
                }

                SelectObject.Path.Reset();
                SelectObject.Path.AddRectangle(СonstructionFigure.ShowRectangleFloat(SelectObject.PointSelect[0], SelectObject.PointSelect[2]));

                SelectObject.DrawText();
            }

            EditObject.MoveObjectSupport(SelectObject, DeltaX, DeltaY);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Метод, выполняющий перемещение объекта.
        /// </summary>
        /// <para name = "CurrObj">Переменная, хранящая объект перемещения.</para>
        /// <para name = "DeltaX">Переменная, хранящая значение дельта X.</para>
        /// <para name = "DeltaY">Переменная, хранящая значение дельта Y.</para>
        public static void MoveObject(ObjectFugure CurrObj, int DeltaX, int DeltaY)
        {
            CurrObj.Path.Transform(new Matrix(1, 0, 0, 1, DeltaX, DeltaY));

            MoveObjectSupport(CurrObj, DeltaX, DeltaY);
        }