Esempio n. 1
0
        private void PB_Draw_MouseMove(object sender, MouseEventArgs e)
        {
            if (movement == action.NoAction)
            {
                if (ChosenLine == null)
                {
                    CurrentX = e.X - maxX / 2;
                    CurrentY = maxY / 2 - e.Y;
                    Line2D cur = null;
                    for (int i = 0; i < lines.Count; i++)
                    {
                        if (CheckForLine(CurrentX, CurrentY, lines[i]))
                        {
                            cur = lines[i];
                            break;
                        }
                    }
                    if (CurrentLine != null)
                    {
                        Graphics g = Graphics.FromImage(PB_Draw.Image);
                        g.DrawLine(new Pen(Color.Black, 1), CurrentLine.A, CurrentLine.B);
                        PB_Draw.Refresh();
                        CurrentLine = null;
                    }
                    if (cur != null)
                    {
                        Graphics g = Graphics.FromImage(PB_Draw.Image);
                        g.DrawLine(new Pen(Color.Red, 1), cur.A, cur.B);
                        PB_Draw.Refresh();
                        CurrentLine = cur;
                    }
                    else
                    {
                    }
                }
            }
            else
            {
                switch (movement)
                {
                case action.MoveLine:
                    ChosenLine.Move(e.X - startPosition.X, e.Y - startPosition.Y);
                    startPosition.X = e.X;
                    startPosition.Y = e.Y;
                    DrawAllLines();
                    break;

                case action.MovePointA:
                    ChosenLine.MoveA(e.X - startPosition.X, e.Y - startPosition.Y);
                    startPosition.X = e.X;
                    startPosition.Y = e.Y;
                    DrawAllLines();
                    break;

                case action.MovePointB:
                    ChosenLine.MoveB(e.X - startPosition.X, e.Y - startPosition.Y);
                    startPosition.X = e.X;
                    startPosition.Y = e.Y;
                    DrawAllLines();
                    break;
                }
            }
        }
Esempio n. 2
0
        private void PB_Draw_MouseMove(object sender, MouseEventArgs e)
        {
            CurrentX = e.X - maxX / 2;
            CurrentY = maxY / 2 - e.Y;
            TB_Mouse_Coordinates.Text = "X: " + CurrentX + " Y: " + CurrentY;
            if (movement == action.NoAction)
            {
                if (ChosenLine == null || ModifierKeys == Keys.Control)
                {
                    Line2D cur = null;
                    for (int i = 0; i < lines.Count; i++)
                    {
                        if (CheckForLine(CurrentX, CurrentY, lines[i]))
                        {
                            cur = lines[i];
                            break;
                        }
                    }
                    if (CurrentLine != null && (!ChosenGroupOfLines.Contains(CurrentLine)) && !(ModifierKeys == Keys.Control && cur != null && ChosenLine == cur))
                    {
                        /*Graphics g = Graphics.FromImage(PB_Draw.Image);
                         * g.TranslateTransform((float)maxX / 2, (float)maxY / 2);
                         * g.ScaleTransform(1, -1);
                         * g.DrawLine(new Pen(Color.Black, 1), CurrentLine.A.X, CurrentLine.A.Y, CurrentLine.B.X, CurrentLine.B.Y);
                         * PB_Draw.Refresh();*/
                        CurrentLine = null;
                    }
                    if (cur != null)
                    {
                        /*Graphics g = Graphics.FromImage(PB_Draw.Image);
                         * g.TranslateTransform((float)maxX / 2, (float)maxY / 2);
                         * g.ScaleTransform(1, -1);
                         * g.DrawLine(new Pen(Color.Red, 1), cur.A.X, cur.A.Y, cur.B.X, cur.B.Y);
                         * PB_Draw.Refresh();*/
                        CurrentLine = cur;
                    }
                    else
                    {
                    }
                }
            }
            else
            {
                switch (movement)
                {
                case action.MoveLine:
                    ChosenLine.Move(CurrentX - startPosition.X, CurrentY - startPosition.Y, 0);
                    startPosition.X = CurrentX;
                    startPosition.Y = CurrentY;
                    DrawAllLines();
                    break;

                case action.MovePointA:
                    ChosenLine.MoveA(CurrentX - startPosition.X, CurrentY - startPosition.Y, 0);
                    startPosition.X = CurrentX;
                    startPosition.Y = CurrentY;
                    DrawAllLines();
                    break;

                case action.MovePointB:
                    ChosenLine.MoveB(CurrentX - startPosition.X, CurrentY - startPosition.Y, 0);
                    startPosition.X = CurrentX;
                    startPosition.Y = CurrentY;
                    DrawAllLines();
                    break;

                case action.MoveLines:     // -- //
                    foreach (Line2D line2D in ChosenGroup.lines)
                    {
                        line2D.Move(CurrentX - startPosition.X, CurrentY - startPosition.Y, 0);
                    }
                    startPosition.X = CurrentX;
                    startPosition.Y = CurrentY;
                    DrawAllLines();
                    break;
                }
            }
        }