/// <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); }
/// <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(); }
/// <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); }
/// <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); } }
/// <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)); } }
/// <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); }
/// <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); }