private void PictureBox1_MouseMove(object sender, MouseEventArgs e) { List <Point> l = new List <Point>(); if (down.X != -1) { if (flag.Equals("Ret")) { p.Draw(white, image); l.Add(new Point(Math.Min(e.X, down.X), Math.Min(e.Y, down.Y))); l.Add(new Point(Math.Abs(down.X - e.X) + Math.Min(e.X, down.X), Math.Min(e.Y, down.Y))); l.Add(new Point(Math.Max(e.X, down.X), Math.Max(e.Y, down.Y))); l.Add(new Point(Math.Min(e.X, down.X), Math.Abs(down.Y - e.Y) + Math.Min(e.Y, down.Y))); p = new Poligono(l, 'R'); p.Draw(color, image); } else if (flag.Equals("Circ")) { Primitivas.ponto_medio_circunf(down.X, down.Y, old.X, old.Y, white, image); Primitivas.ponto_medio_circunf(down.X, down.Y, e.X, e.Y, color, image); } else if (flag.Equals("Elip")) { Primitivas.ponto_medio_elipse(down.X, down.Y, old.X, old.Y, white, image); Primitivas.ponto_medio_elipse(down.X, down.Y, e.X, e.Y, color, image); } else if (flag.Equals("Reta")) { Primitivas.bresenham(down.X, down.Y, old.X, old.Y, white, image); Primitivas.bresenham(down.X, down.Y, e.X, e.Y, color, image); } else if (flag.Equals("Livre")) { Primitivas.bresenham(liv.X, liv.Y, e.X, e.Y, color, image); liv = e.Location; } else if (flag.Equals("Pol")) { Primitivas.bresenham(down.X, down.Y, old.X, old.Y, white, image); Primitivas.bresenham(down.X, down.Y, e.X, e.Y, color, image); } old = e.Location; pbMain.Image = image; } lbX.Text = e.X + ""; lbY.Text = e.Y + ""; }
private void PictureBox1_MouseUp(object sender, MouseEventArgs e) { if (down.X != -1 && !flag.Equals("")) { if (flag.Equals("Livre") || flag.Equals("Reta") || flag.Equals("Circ") || flag.Equals("Elip")) { old.X = 0; down.X = -1; } else if (!flag.Equals("Pol")) { p.Pol1 = "Poligono " + (lvPolig.Items.Count + 1); lvPolig.Items.Add(p); p = new Poligono(); old.X = 0; down.X = -1; } else if (p.PontosAtuais.Count > 2 && e.Button == MouseButtons.Right) { Primitivas.bresenham(down.X, down.Y, p.PontosOriginais[0].X, p.PontosOriginais[0].Y, Color.Black, image); p.Pol1 = "Poligono " + (lvPolig.Items.Count + 1); lvPolig.Items.Add(p); p = new Poligono(); old.X = 0; down.X = -1; } else { down = e.Location; } } pbMain.Image = image; }