Mostrando entradas con la etiqueta graficacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta graficacion. Mostrar todas las entradas
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
on miércoles, 12 de octubre de 2011
Que tal, en esta ocasión vamos a trabajar en la graficacion de un simple tablero de ajedrez en c sharp.

1.- Primero que nada necesitamos crear un nuevo proyecto de tipo windows form


2.- Ahora en nuestra forma, agregamos un MenuStrip


3.- Implementación del código necesario para graficar un tablero de ajedrez.


        public void DibujarTableroDeAjedrez(Form forma)
        {
            bool blanco = true;
            int anchoCuadricula = 30;
            int x = 40, y = 40;
            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    if (blanco)
                    {
                        FxTools.GraficarCuadro(forma, Color.FromArgb(0, 255, 0), x, y, anchoCuadricula);
                        blanco = false;
                    }
                    else
                    {
                        FxTools.GraficarCuadro(forma, Color.FromArgb(0, 0, 0), x, y, anchoCuadricula);
                        blanco = true;
                    }
                    x +=31;
                }
                if (blanco)
                    blanco = false;
                else
                    blanco = true;
                x = 40;
                y += 31;
            }
        }

//-----------------------------------------------------------------------------------------------------------
este es el código necesario para graficar un tablero de ajedrez, como ven, tenemos de una bandera que nos servirá cuando pintar un cuadro de color blanco y cuando no, tenemos un ancho de cuadricula, que por defecto es 30 (por fines didácticos se estableció hardcode los valores de "anchoCuadricula", "x" y de "y".

Contamos con dos bucles que nos servirán para recorrer la cuadricula, la dimensión de un tablero de ajedrez es de 8 x 8, que nos da un total de 64 casillas.

en cada casilla se establecerá un color, ya sea blanco o negro, todo esto va a depender de la bandera "blanco", para obtener el color blanco, lo podemos obtener de varias formas, en esta ocasión se obtiene por medio del método estático  FromArgb de la clase Color


En el caso de graficar el color, para el color blanco se opta poner el color verde (0,255,0) y en el caso de las casillas oscuras, el color negro (0,0,0)


4.- creando la clase FxTools e implementando el metodo GraficarCuadro



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;


namespace EjemploBlog
{
    class FxTools
    {
        public static void GraficarCuadro(Form forma, Color color, int x, int y, int ancho)
        {


            SolidBrush solidBrush = new SolidBrush(color);
            Graphics g = forma.CreateGraphics();
            g.FillRectangle(solidBrush, x, y, ancho, ancho);
        }
    }
}


5.- accesando al metodo DibujarTableroDeAjedrez(Form forma)


Ya para terminar con este ejemplo, vamos a mandarlo llamar de nuestro MenuStrip:



        private void tableroDeAjedrezToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DibujarTableroDeAjedrez(this);
        }



6.- el programa en tiempo de ejecución 



tableroDeAjedrez
on domingo, 11 de septiembre de 2011
que tal, aqui les tengo un pequeño video tutorial sobre como manipular imagenes con extension .bmp




aqui les pongo una liga donde pueden obtener los fuentes del proyecto:
http://www.mediafire.com/?bc0ve8kixfhv55w