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; } } }
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; } } }