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