示例#1
0
        /// <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;
            }
        }
示例#2
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);
        }