none
Como desenhar retas paralelas?

    Pergunta

  • ola, fiz uma aplicação que ao clicar e arrastar o mouse desenha -se uma reta,

    com o ponto inicial onde o mouse down e ponto final onde mouse up.

    no entanto gostaria que alem dessa reta, ele desenhasse outra reta paralela a que ja é desenhada.

     

    private void panel1_MouseDown(object sender, MouseEventArgs e)
            {
                Drag = true;
                StartX = e.X;
                StartY = e.Y;
            }

    private void panel1_MouseUp(object sender, MouseEventArgs e)
            {
                Graphics g = panel1.CreateGraphics();
                Pen myPen = new Pen(Color.Aqua, 10);

                Drag = false;

                g.Clear(panel1.BackColor);
                g.DrawLine(myPen, StartX, StartY, e.X, e.Y);

                g.Dispose();
                myPen.Dispose();
            }

            private void panel1_MouseMove(object sender, MouseEventArgs e)
            {
                Graphics g = panel1.CreateGraphics();
                Pen myPen = new Pen(Color.Aqua, 10);

                CurrentX = e.X;
                CurrentY = e.Y;
                if (Drag == true)
                {
                    g.DrawLine(myPen, StartX, StartY, CurrentX, CurrentY);
                    CurrentX = e.X;
                    CurrentY = e.Y;
                }

                g.Dispose();
                myPen.Dispose();

    }

    quinta-feira, 8 de dezembro de 2011 15:41

Respostas

  • Berg,

    Segue a solução:

    private void panel1_MouseUp(object sender, MouseEventArgs e)
    {
                Graphics g = panel1.CreateGraphics();
                Pen myPen = new Pen(Color.Aqua, 20);
    
                Drag = false;
    
                g.Clear(panel1.BackColor);
    
                myPen.CompoundArray = new float[] { 0.0f, 0.4f, 0.6f, 1.0f };
    
                g.DrawLine(myPen, StartX, StartY, e.X, e.Y);
    
                g.Dispose();
                myPen.Dispose();
    }
    

    Abraço,


    Carlos Eduardo Ferreira
    quinta-feira, 8 de dezembro de 2011 16:26

Todas as Respostas

  • Berg,

    Segue a solução:

    private void panel1_MouseUp(object sender, MouseEventArgs e)
    {
                Graphics g = panel1.CreateGraphics();
                Pen myPen = new Pen(Color.Aqua, 20);
    
                Drag = false;
    
                g.Clear(panel1.BackColor);
    
                myPen.CompoundArray = new float[] { 0.0f, 0.4f, 0.6f, 1.0f };
    
                g.DrawLine(myPen, StartX, StartY, e.X, e.Y);
    
                g.Dispose();
                myPen.Dispose();
    }
    

    Abraço,


    Carlos Eduardo Ferreira
    quinta-feira, 8 de dezembro de 2011 16:26
  • perfeito cara!! muito obrigado..
    segunda-feira, 19 de dezembro de 2011 01:18