private void AnimarCirculo(Circulo circulo, Vista vista) { vista.colorLapiz = Color.DarkRed; vista.mostrar_Circulo(circulo); bool sentido = true; while(true) { while(cbAnimacion.Checked) { Thread.Sleep(500); vista.colorLapiz = Color.LightSteelBlue; vista.mostrar_Circulo(circulo); if (sentido) { if (circulo.centro.X <= panel1.Width - 2 * circulo.radio) circulo.centro = new Point(circulo.centro.X + circulo.radio, circulo.centro.Y); else sentido = false; } else { if (circulo.centro.X > circulo.radio) circulo.centro = new Point(circulo.centro.X - circulo.radio, circulo.centro.Y); else sentido = true; } vista.colorLapiz = Color.DarkRed; vista.mostrar_Circulo(circulo); } } }
private void btnCrearCirculo_Click(object sender, EventArgs e) { if(cbAnimacion.Checked) { Random aleatorio = new Random(); int r = aleatorio.Next(15, 50); int x, y; x = aleatorio.Next(0,panel1.Width - r); y = aleatorio.Next(0, panel1.Height - r); Point punto = new Point(y,x); Circulo circulo = new Circulo(r,punto); Task tarea = new Task(() => AnimarCirculo(circulo, new Vista(panel1))); tarea.Start(); } }
public void mostrar_Circulo(Circulo c) { lapiz = new Pen(colorLapiz, 3); g.DrawEllipse(lapiz, c.centro.X, c.centro.X, c.radio, c.radio); }