/// <summary> /// Метод, выполняющий действия над выделенными фигурами. /// </summary> /// <para name = "e">Переменная, хранящая координаты мыши.</para> /// <para name = "CurrentActions">Переменная, хранящая действие над выбранной фигурой.</para> /// <para name = "FiguresBuild">Переменная, хранящая список действий.</para> public void MouseMove(MouseEventArgs e, int CurrentActions) { //Считаем смещение курсора int deltaX, deltaY; deltaX = e.Location.X - _oldPoint.X; deltaY = e.Location.Y - _oldPoint.Y; foreach (ObjectFugure SelectObject in _selectedFigures) { //Масштабирование опорных точек if ((SelectObject != null) && (_supportObj != null)) { Rectangles.ScaleSelectFigure(SelectObject, _supportObj, deltaX, deltaY); } else { if (SelectObject != null) { EditObject.MoveObject(SelectObject, deltaX, deltaY); } } _oldPoint = e.Location; } }
/// <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); }