コード例 #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 = "e">Переменная, хранящая координаты мыши.</para>
        /// <para name = "Rect">Переменная, хранящая зону выделения.</para>
        /// <para name = "Figures">Переменная, хранящая список всех фигур.</para>
        /// <para name = "CurrentActions">Переменная, хранящая действие над выбранной фигурой.</para>
        /// <para name = "FiguresBuild">Переменная, хранящая список действий.</para>
        public void MouseDown(MouseEventArgs e, List <ObjectFugure> Figures, int CurrentActions)
        {
            ////Запоминаем положение курсора
            _oldPoint = e.Location;

            float figurestartX, figurestartY, figureendX, figureendY;

            if (_selectedFigures.Count == 0)
            {
                foreach (ObjectFugure DrawObject in Figures)
                {
                    figurestartX = DrawObject.FigureStart.X;
                    figurestartY = DrawObject.FigureStart.Y;

                    figureendX = DrawObject.FigureEnd.X;
                    figureendY = DrawObject.FigureEnd.Y;

                    // Получение области выделения
                    _rectangleF = DrawObject.Path.GetBounds();

                    if (figurestartX == figureendX)
                    {
                        _rectangleF.Inflate(10, 5);
                    }

                    if (figurestartY == figureendY)
                    {
                        _rectangleF.Inflate(5, 10);
                    }

                    if (_rectangleF.Contains(e.Location))
                    {
                        Rectangles.ScaleFigure(e, DrawObject, _selectedFigures);
                        Rectangles.AddSupportPoint(DrawObject, Color.Red);
                    }
                }
            }
        }
コード例 #3
0
 public void PaintFigure(PaintEventArgs e, List <PointF> Points)
 {
     Rectangles.PaintFigure(e, Points);
 }
コード例 #4
0
 public void MouseMove(List <PointF> _points, MouseEventArgs e)
 {
     Rectangles.MouseMove(_points, e);
 }