Graficando cuadros aleatorios en c sharp

on martes, 25 de octubre de 2011

Que tal, ahora vamos a ver la forma de como graficar cuadros en c sharp.


  • Lo primero que necesitas es crear un nuevo proyecto de tipo windows form

  • Una vez que tenemos creado nuestro proyecto, agregamos un menuStrip en nuestra forma y agregamos un elemento llamado Generar cuadro.

menuStrip
  • Ahora vamos a ver como crear un cuadro en c#.
lo primero que necestamos saber, es que en c-sharp tenemos la clase Graphics, la cual nos permite hacer una instancia en base a una instancia de la clase Form.

 Graphics grafics = this.CreateGraphics();

Aquí estamos creando una instancia de la clase Graphics, notese que no se usa la palabra reservada new para hacer la instancia, si no que la forma o cualquier clase que herede de Form tiene un metodo llamado CreateGraphics(); que nos permite generar una instancia de un objeto Graphics.

Una vez teniendo nuestro objeto Graphics, es necesario saber como dibujuar un cuadro. Para eso es necesario un método llamado GraficarCuadro(int x, int y, int width, int height, Color color), y lo agregamos al archivo .cs de nuestra forma.

        private void GraficarCuadro(int x, int y, int width, int height, Color color)
        {
            Graphics grafics = this.CreateGraphics();
            Rectangle rectangulo = new Rectangle(x, y, width, height);
            SolidBrush brush = new SolidBrush(color);
            Pen pluma = new Pen(brush);
            grafics.FillRectangle(brush, rectangulo);
        }

Con este método podemos graficar cuadros y rectángulos de un determinado tamaño y color. pero lo que nos interesa a nosotros es como generar una cantidad aleatoria de cuadros en la pantalla, para esto, es necesario introducir el siguiente código en nuestro evento onclick de nuestro elemento del menuStrip, en mi caso, el nombre del item del menuStrip se llama generarCuadrosALoEstupido.

        private void generarCuadrosALoEstupidoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Random random = new Random(DateTime.Now.Millisecond);

            for (int i = 0; i < 50; i++) // nota1
            {
                GraficarCuadro(random.Next(10, this.Width), random.Next(10, this.Height), 
                random.Next(1, 200), random.Next(1, 200),
                Color.FromArgb(random.Next(0, 256),random.Next(0, 256),random.Next(0, 256)));
                Thread.Sleep(300);
            }
        }

nota1: notese que la cantidad de cuadros que se graficaran sera de 50, aqui se le puede cambiar de manera que el usuario indique cuantos cuadros se necesitan graficar.


  • El programa en tiempo de ejecución:

generarCuadrosAloEsutpido

1 comentarios:

Andres dijo...

Yo use un ejemplo para generarlos dramáticamente por medio del puntero del mouse que es exactamente lo que hiciste tu solo q yo con el click del mouse, pero mi idea original, era que al hacer click con el mouse en una posicion del grid(pantalla o como chingaos se le diga XD) el cuadro se creara ahi, la segunda opcion que quice hacer es algo parecido a lo que hace el paint, dibujar un cuadro como si estuvieras en paint pero te repito lo unico que me dio problema fue saber como jugar con las posiciones del grid, en fin muy buen aporte y que tal si un dia haces alguno de generación de controles dinamicos. . . Buen aporte. . .

Publicar un comentario