Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Graficos: Grafica circular

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Luis Garcia
STAFF TEAM
STAFF TEAM


Mensajes : 61
Puntos : 109

MensajeTema: Graficos: Grafica circular   Lun Abr 25, 2011 12:54 pm

Representación de una gráfica circular mediante gráficos en c#.

[Tienes que estar registrado y conectado para ver esa imagen]

En un proyecto windows forms agregamos el "using":
Código:

using System.Drawing;
Utilizado para el "dibujo" o graficacion de figuras.

Necesitaremos agregar algunos controles al formulario:
-Un textbox para insertar valores.
-Un control panel sobre el cual dibujaremos la figura.
-Dos listBox, uno para visualizar los datos y el otro para visualizar los porcentajes de dichos datos.
-Tres botones: para agregar el dato, para borrar los datos y un tercero para graficar.

Dentro de la clase crearemos un vector de brochas para su posterior uso
Código:

Brush[] brochas = new Brush[] { Brushes.Red, Brushes.Blue, Brushes.Green, Brushes.Aqua, Brushes.Black, Brushes.LavenderBlush, Brushes.LightPink, Brushes.Orange, Brushes.Purple, Brushes.Yellow };

También necesitaremos algunas variables para su posterior uso, ya que se utilizará en un botón, de esta manera solo declaramos el dato una vez.

Código:

float totales = 0;
float anguloFinal = 0;
float anguloInicio = 0;
byte pincel = 0;

Con 10 brochas será suficiente para el ejemplo sin embargo se pueden utilizar más para no tener colores repetidos en la gráfica de barras.

En el evento click del boton "Agregar Dato":
Código:

    if (txtDato.Text != "")//Validación para que no halla valores nulos
            {
                lbDatos.Items.Add(txtDato.Text);
                txtDato.Text = "";
                txtDato.Focus();
            }

En el evento click del boton "Borrar datos":
Código:

lbDatos.Items.Clear();
lbPorcentaje.Items.Clear();

Como una validación extra, no permitiremos ingresar datos diferentes a números (backspace no funciona).

En el evento keyPress del TextBox validamos que no sea posible insertar caracteres que no sean te tipo numerico.
Código:

if (!char.IsNumber(e.KeyChar))
            {
                e.Handled = true;
            }


En el evento click del boton "graficar":
Código:

 Graphics grafico = pnGrafica.CreateGraphics();
//Creamos gráfico a partir de un panel (nuestro lienzo)

grafico.Clear(Color.White);
/* Se limpia el panel de color blanco */
lbPorcentaje.Items.Clear();
/* Se limpia las lista de "porcentaje"
  for (int i = 0; i < lbDatos.Items.Count; i++)

 totales += float.Parse(lbDatos.Items[i].ToString());
 }//Se calcula la suma de los datos
           
System.Drawing.Font Fuente = new System.Drawing.Font("Courier New", 10, FontStyle.Bold);//Fuente

 for (int j = 0; j < lbDatos.Items.Count; j++)
/* Por cada dato en la lista */
            {
anguloFinal = (float.Parse( lbDatos.Items[j].ToString()) / totales) * 360;
/* Calculamos a cuanto equivale el primer dato en un circulo que es 360 grados */

lbPorcentaje.Items.Add((float.Parse(lbDatos.Items[j].ToString()) / totales) * 100);
grafico.FillPie(brochas[pincel],pnGrafica.ClientRectangle, anguloInicio,anguloFinal);
                anguloInicio += anguloFinal;
                if(pincel==9){ pincel=0;}
                pincel++;
/* Angulo inicial es el angulo donde inicia el pastel y angulo final donde termina, claro que en caso de más datos el angulo inicial irá en aumento es decir mediante el porcentaje.*/
            }
        anguloInicio = 0;
        anguloFinal = 0;
        totales = 0;
        pincel = 0;//se limpian las variables

Descargar:[url][Tienes que estar registrado y conectado para ver este vínculo] circular.zip
[/url]
Volver arriba Ir abajo
Ver perfil de usuario
ramosjose
Novato


Mensajes : 1
Puntos : 1

MensajeTema: Re: Graficos: Grafica circular   Dom Ago 11, 2013 2:12 pm

exelente solo k dejalo sin errores si kitale esas cosas de comentarios jajajaja le bajarias la moral a alguien k no sabe de programacion jeje
Volver arriba Ir abajo
Ver perfil de usuario
 
Graficos: Grafica circular
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» ¿Cambiar el color de la grafica de Mejores Posteadores?
» Un foro me ha copiado graficos que hice con photoshop y las secciones
» Perdon si estoy rompiendo una regla, pero, ¿Porque los foros de creacion grafica estan cerrados?
» acerca de los pedidos de creacion grafica
» Que se pueda poner animación en toda la sección grafica

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: