Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Ylen en 5 Abril 2009, 07:33 am



Título: metodo de ordenamiento burbuja en graficos en lenguaje c#
Publicado por: Ylen en 5 Abril 2009, 07:33 am
hola !!!
no se mucho de graficos me gustaria que me orientaran acerca de como hacer el metodo de ordenamiento burbuja simple en graficos en c#

ya se como activar el modo grafico pero no se como comenzar hacer el al algoritmo de burbuja para que sea en grafico alguien que me oriente

grax!!!


Título: Re: metodo de ordenamiento burbuja en graficos en lenguaje c#
Publicado por: 43H4FH44H45H4CH49H56H45H en 6 Abril 2009, 01:01 am
Te refieres a hacerlo en un formulario con listbox o similar? porque a la primera googleada la encuentras. En otro caso ser más especifico.


Título: Re: metodo de ordenamiento burbuja en graficos en lenguaje c#
Publicado por: Ylen en 7 Abril 2009, 08:12 am
bueno a lo que me refiero es hacer graficos en c#

tipo esto

/*
-Programa 2, Practica Graficos (Turbo C) "graphics.h"
-Programa dibuja un circulo, y 7 circulos sobre la primera circunferencia
 dando vueltas
*/

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>   /*funciones graficas*/
#include <math.h>              /*funciones matematicas*/
#include <dos.h>                /*Contiene la funcion delay*/
void main(){
               
                int driver, modo;
                int circulo[100];
                int i,circulos;/*contadores*/
                int aux1;/*variable auxiliar para simular el giro de los circulos*/
                char aux2[3];/*auxiliar para el numero de cada circulo*/
                int centrox,centroy,radiog;/*circulo principal*/
                int radiop;/*radio de los riculos pequeños*/
                int num,num2,num3,num4,num5;

                /*
                 Se les asignara la posicion de cada vertice de los circulos pequeños
                */
                int verticesx[100],verticesy[100];
                double alfa;/*2 veces PI entre el numero de vertices*/
                /*--------------------------*/
                /* Variable que controla la cantidad de circulos que iran dando vueltas
                 al rededor del circulo mayor. */
                printf("Cantidad de circulos dando vueltas = ");scanf("%d",&circulos);
                Printf("numeros:");scanf("%d",&num);
                Printf("numeros:");scanf("%d",&num2);
                 Printf("numeros:");scanf("%d",&num3);
                  Printf("numeros:");scanf("%d",&num4);
                  Printf("numeros:");scanf("%d",&num5);
                /* Centro del circulo mayor */
                centrox=320;/*x*/
                centroy=240;/*y*/
                radiog=100;/*Radio del circulo mayor*/
                radiop=15;/*Radio de los circulos pequeños*/
                /*--------------------------*/
                for (i=0;i<=circulos-1;i++){
                                circulo=i+1;
                        }
                /*
                 gdriver=0 o DETECT Esto hace que se seleccione un dispositivo
                 y un modo apropiado de video, hace la llamada a la funcion
                 detectgraph()
                */
                driver=DETECT;
                /*
                 Una vez teniendo el timop de gdriver, se inicializa el modo de video
                 grafico
                */
                initgraph(&driver,&modo,"C:\\TCLITE\\BGI");
                /*
                 Dibujamos el circulo grande con centro en (320 x,240 y) y con un radio
                 de 200
                */
                circle(centrox,centroy,radiog);
                /*
                 algoritmo para obtener la posicion de los circulos en el plano de manera
                 que queden en una misma distancia todos, tomando en cuenta que es un heptagono
                        1.  Crear una lista de 7 vértices: vértices
                        2.  alfa <- 2*PI / 7
                        3.  Bucle: i <- 0 hasta 6
                        4.     vértices.x <- centro.x + radio * cos( i*alfa )
                        5.     vértices.y <- centro.y + radio * sen( i*alfa )
                */
                alfa=(2*3.141586)/circulos;
                for (i=0;i<=circulos-1;i++){
                                verticesx=abs(centrox+radiog*cos(i*alfa));
                                verticesy=abs(centroy+radiog*sin(i*alfa));
                        }
                /*
                circulo[0]=1
                circulo[1]=2
                circulo[2]=3
                circulo[3]=4
                circulo[4]=5
                circulo[5]=6
                circulo[6]=7
                .
                .
                circulo
  • =x+1
                */
                do{
                                for(i=circulos-1;i>=0;i--){
                                                setcolor(circulo);/*color del texto*/
                                                setfillstyle(1,circulo);/*color de relleno del circulo*/
                                                fillellipse(verticesx,verticesy,radiop,radiop);
                                                /*
                                                 Seteamos la salida del color en 16 (negro) para
                                                 fin de poder ver el numero que le pertenece a cada
                                                 circulo
if(num>num2)

                                                */
                         if(circulo==16){/*Si el color del circulo es negro*/
                                                                        setcolor(15);/*cambiamos por otro color el numero del circulo*/
                                                                }else{
                                                                        setcolor(16);/*si no seguimos con texto negro*/
                                                        }
                                                sprintf(aux2,"%d",circulo);
                                                outtextxy(verticesx-3,verticesy-3,aux2);
                                        }
                                                delay(500);/*retardamos la ejecucion*/
                                                /*
                                                 Le damos el efecto de que estan girando los circulos
                                                */
                                                aux1=circulo[circulos-1];
                                                for (i=circulos-2;i>=0;i--){
                                                                circulo[i+1]=circulo;
                                                        }
                                                circulo[0]=aux1;
                                        }
                                /*
                                 El programa mantiene su ejecucion mientras no sea tocada
                                 ninguna tecla !kbhit();
                                 (Key Board Hit >> KBHit)
                                */
                        while(!kbhit());
             
                closegraph();
}


** quiero realizar el metodo de ordenamiento de burbuja en graficos donde se le inserten numeros y los vaya ordenando pero en modo grafico quiero realizar 5 circulos  dende se colocara el numero y despues los circulos se van a ir moviendo de posicion dependiendo del numero que tenga !!!

pero nose como realizarlo!!!


Título: Re: metodo de ordenamiento burbuja en graficos en lenguaje c#
Publicado por: 43H4FH44H45H4CH49H56H45H en 8 Abril 2009, 05:23 am
Para dibujar circulos puedes hacerlo asi:

Código
  1. private void button1_Click(object sender, EventArgs e)
  2.        {
  3.            circulos(10, 20, 20, 20); // coordenada X,Y, ancho, alto
  4.            circulos(5, 10, 40, 40); // coordenada X,Y, ancho, alto
  5.  
  6.        }
  7.        private void circulos(int X, int Y, int W, int Z)
  8.        {
  9.            System.Drawing.Graphics graphics = this.CreateGraphics();
  10.            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(X, Y,W,Z);
  11.            graphics.DrawEllipse(System.Drawing.Pens.Red, rectangle);
  12.        }

luego lo adaptas a tu proyecto, en el ejemplo se dibuja dos circulos en el mismo form, puedes hacerlo de igual manera en una imagen o similar.


Título: Re: metodo de ordenamiento burbuja en graficos en lenguaje c#
Publicado por: Ylen en 8 Abril 2009, 07:30 am
gracias por tu aporte kreo que tengo una idea de como realizarlo !!!

 :D

despues publicare como lo hize para que alguien que se encuentre en mi mismo problema pueda darse a la idea de como hacerlo !!!

gracias !!!