graficas en c++ completo.doc

download graficas en c++ completo.doc

of 224

Transcript of graficas en c++ completo.doc

Introduccin a la Programacin grafica en C

Bismarck Salvador Traa Lpez__________________________________________UNI

Introduccin a la Programacin grafica en C.

Para la mejor comprensin de este tutor hemos realizado un anlisis de las Funciones que se suelen utilizar con mucha frecuencia al programar en el modo grafico de C, dando como resultado la librera conio.h, dos.h, stdlib.h, y evidentemente graphics.h.

En este pequeo tutor solo haremos nfasis en estas libreras, puesto que al final del libro se encuentran las dems libreras que comnmente encontramos con frecuencia en el programa.

Muchos libros nos marean dndonos conceptos los cuales se aprenden conforme programando; esto no significa, que no sean importan tantees los ejercicios que aqu te enseamos te ayudaran a darte todo el conocimiento as como tambin te los daremos conforme avancemos as que dejemos de hablar y aventurmonos en el mundo de la programacin grafica.

Lo primero que debemos saber al realizar una grafica son las dimensiones del ordenador (Monitor) en modo texto las dimensiones de este es 25X80 esto dependiendo de la versin de video instalada. En el modo grafico estas dimensiones cambian dependiendo del tipo de macro de inicializacin se realice(ver Macro modos). Quedando la mas comn de 640X480 modo VGA.

A la hora de desarrollar un programa grfico se debe tener en cuenta los siguientes cuatro puntos:

1. Especificar el fichero o librera graphics.h

# include

2. Inicializar el modo grafico correspondiente mediante la Funcin initgraph;

Initgraph(&adaptador,&modo,direccin de los archivos bgi);

3. Crear y manipular las figuras graficas.

/*Desarrollo del programa*/

4. Restaurar el modo de video antes de salir del programa(restaurar el modo texto)

closegraph() o restorecrtmode()Otra de las cosas importantes que debemos saber es que Funciones contiene graphics.h

Funciones de Graphics.h

Esta librera se encuentra los prototipos de las Funciones que manipulan la parte grfica en el entorno de MS-DOS.

Arc

bar

bar3d

circle

cleardevice

clearviewport

closegraph

detectgraph

drawpoly

ellipse

fillellipse

fillpoly

floodfill

getarccoords

getaspectratio

getbkcolor

getcolor

getdefaultpalette

getdrivername

getfillpattern

getfillsettings

getgraphmode

getimage

getlinesettings

getmaxcolor

getmaxmode

getmaxx

getmaxy

getmodename

getmoderange

getpalette

getpalettesize

getpixel

gettextsettings

getviewsettings

getx

gety

graphdefaults

grapherrormsg

graphfreemem

graphgetmem

graphresult

imagesize

initgraph

installuserdriver

installuserfont

line

linerel

lineto

moverel

moveto

outtext

outtextxy

pieslice

putimage

putpixel

rectangle

registerbgidriver

registerbgifont

restorecrtmode

sector

setactivepage

setallpalette

setaspectratio

setbkcolor

setfillpattern

setfillstyle

setgraphbufsize

setgraphmode

setlinestyle

setpalette

setrgbpalette

settextjustify

settextstyle

setusercharsize

setviewport

setvisualpage

setwritemode

textheight

textwidth

Es necesario conocer hacerca de los macros y estructuras, entre las estructuras tenemos:

arccoordstype

fillsettingstype

linesettingstype

palettetype

textsettingstype

viewporttypeEntre los macros se encuentran:

colores

drivers

enlazar

errores

fuentes

lnea

modos

put_op

tramaAntes de comenzar a programar en modo grafico debemos estudiar lo que son los macros, que son instrucciones que nos ayudaran a realizar de una manera ms efectiva nuestros grficos.

Colores :

Colores de Fondo

ConstanteValorSignificado

BLACK 0Negro

BLUE 1Azul

GREEN 2Verde

CYAN 3Can

RED 4Rojo

MAGENTA 5Magenta

BROWN 6Marrn

LIGHTGRAY 7Gris Claro

DARKGRAY 8Gris Oscuro

LIGHTBLUE 9Azul Claro

LIGHTGREEN 10Verde Claro

LIGHTCYAN 11Can Claro

LIGHTRED 12Rojo Claro

LIGHTMAGENTA 13Magenta Claro

YELLOW 14Amarillo

WHITE 15Blanco

Modo de 16 Colores

ConstanteValorSignificado

BLACK 0Negro

BLUE 1Azul

GREEN 2Verde

CYAN 3Can

RED 4Rojo

MAGENTA 5Magenta

BROWN 6Marrn

LIGHTGRAY 7Gris Claro

DARKGRAY 8Gris Oscuro

LIGHTBLUE 9Azul Claro

LIGHTGREEN 10Verde Claro

LIGHTCYAN 11Can Claro

LIGHTRED 12Rojo Claro

LIGHTMAGENTA 13Magenta Claro

YELLOW 14Amarillo

WHITE 15Blanco

Color del modo CGA

Nmero PaletaColor 1SignificadoColor 2SignificadoColor 3Significado

0CGA_LIGHTGREENVerde ClaroCGA_LIGHTRED Rojo Claro CGA_YELLOW Amarillo

1CGA_LIGHTCYAN Can Claro CGA_LIGHTMAGENTAMagenta ClaroCGA_WHITE Blanco

2CGA_GREEN VerdeCGA_RED RojoCGA_BROWNMarrn

3CGA_CYAN CanCGA_MAGENTAMagentaCGA_LIGHTGRAY Gris Claro

Valor asignado: 1 2 3

Nota: Color 0 se reserva para el color de fondo y se asigna con lo funcin setbkcolor, pero los dems colores son fijos. Estas constantes se usan con setcolor.

Colores para las paletas.Constante (CGA)ValorConstante (EGA/VGA)Valor

BLACK0EGA_BLACK 0

BLUE 1EGA_BLUE1

GREEN 2EGA_GREEEN2

CYAN 3EGA_CYAN3

RED 4EGA_RED4

MAGENTA 5EGA_MAGENTA 5

BROWN 6EGA_LIGHTGRAY7

LIGHTGRAY 7EGA_BROWN 20

DARKGRAY 8EGA_DARKGRAY 56

LIGHTBLUE 9EGA_LIGHTBLUE 57

LIGHTGREEN 10EGA_LIGHTGREEN58

LIGHTCYAN 11EGA_LIGHTCYAN 59

LIGHTRED12EGA_LIGHTRED60

LIGHTMAGENTA13EGA_LIGHTMAGENTA61

YELLOW14EGA_YELLOW62

WHITE15EGA_WHITE63

Nota: Estas constantes se usan con las Funciones setpalette y setallpalette.el cual veremos en captulos posterioresFuentes:

Fuentes para Texto

ConstanteValorValor

DEFAULT_FONT0Fuente bitmap de 8x8

TRIPLEX_FONT1Fuente escalable de tipo triple

SMALL_FONT2Fuente escalable pequea

SANS_SERIF_FONT3Fuente escalable de tipo sans serif

GOTHIC_FONT4Fuente escalable de tipo gtico

SCRIPT_FONT5Fuente escalable de tipo manuscrito

SIMPLEX_FONT6Fuente escalable de tipo manuscrito simple

TRIPLEX_SCR_FONT7Fuente escalable de tipo manuscrito triple

COMPLEX_FONT8Fuente escalable de tipo complejo

EUROPEAN_FONT9Fuente escalable de tipo europeo

BOLD_FONT10Fuente escalable en negrita

Direccin del Texto

ConstanteValorSignificado

HORIZ_DIR 0Texto horizontal

VERT_DIR 1Texto vertical

Justificacin de Texto en la Horizontal

ConstanteValor Significado

LEFT_TEXT 0Justificar a la izquierda

CENTER_TEXT 1Centrar el texto

RIGHT_TEXT 2Justificar a la derecha

Justificacin de Texto en la Vertical

ConstanteValorSignificado

BOTTOM_TEXT 0Justificar debajo

CENTER_TEXT 1Centrar el texto

TOP_TEXT 2Justificar arriba

Tramas:

Tramas predefinidasConstanteValorSignificado

EMPTY_FILL

0Rellena con el color de fondo

SOLID_FILL1Rellena enteramente

LINE_FILL2Rellena con lneas horizontales: ---

LTSLASH_FILL3Rellena con rayas finas: ///

SLASH_FILL4Rellena con rayas gruesas: ///

BKSLASH_FILL5Rellena con rayas inversas y finas: \\\

LTBKSLASH_FILL6Rellena con rayas inversas y gruesas: \\\

HATCH_FILL7Rellena con lneas cruzadas cuadriculadamente: +++

XHATCH_FILL8Rellena con lneas cruzadas diagonalmente: XXXX

INTERLEAVE_FILL9Rellena con lneas entrelazadas

WIDE_DOT_FILL10Rellena con lunares bastante distanciados

CLOSE_DOT_FILL11Rellena con lunares poco distanciados

USER_FILL12Rellena con la trama definida por el usuario

Nota: Todos los tipos de tramas menos EMPTY_FILL usan el color de relleno

seleccionado; EMPTY_FILL usa el color de fondo para rellenar.Driver:

Dispositivos Grficos

Dispositivo/ConstanteValor

DETECT 0

CGA 1

MCGA 2

EGA 3

EGA64 4

EGAMONO 5

IBM8514 6

HERCMONO 7

ATT400 8

VGA 9

PC3270 10

Lneas:Estilos de Lneas

ConstanteValorSignificado

SOLID_LINE 0Lnea continua _______

DOTTED_LINE 1Lnea hecha con puntos ..

CENTER_LINE 2 Lnea centrada

DASHED_LINE 3 Lnea discontinua _._._._.

USERBIT_LINE 4 Lnea definida por el usuario

Nota: El grosor es definido escribiendo NORM_WIDTH para rallas normales y THICK_WIDTH para lneas mas gruesosGrosores para LneasModos de Escritura

Constante Grosor

Valor

Significado

NORM_THICK

1

Grosor es de 1 pxel

THICK_WIDTH

3

Grosor es de 3 pxeles

Constantes

Valor

Significado

COPY_PUT

0

Pxeles de la lnea sobrescriben

los pxeles existentes

XOR_PUT

1

Pxel de la pantalla son el

Resulta do de la operacin

OR de los pxeles existentes

y los de la lnea

Modos:

Modos GrficosDispositivoModo/ConstanteCdigoResolucinPaletaPagina

CGACGAC00320X2004 Clores1

CGAC11320X2004 Clores1

CGAC22320X2004 Clores1

CGAC33320X2004 Clores1

CGAHI4640X2002 Clores1

MCGAMCGAC00320X2004 Clores1

MCGAC11320X2004 Clores1

MCGAC22320X2004 Clores1

MCGAC33320X2004 Clores1

MCGAMED4640X2002 Clores1

MCGAHI5640X4802 Clores1

EGAEGALO0640X20016 Colores4

EGAHI1640x35016 Colores2

EGA64A64LO0640X20016 Colores1

EGA64HI1640X3504 Colores1

EGAMONOAMONOHI3640x2002 Colores1* / 2**

VGAVGALO0640X20016 Colores2

VGAMED1640x35016 Colores2

VGAHI2640X48016 Colores1

ATT400ATT400C00320x2004 Colores1

ATT400C11320x2004 Colores1

ATT400C22320x2004 Colores1

ATT400C33320x2004 Colores1

ATT400MED4640x4002 Colores1

ATT400HI5640x4002 Colores1

HERCHERCMONOHI0720X3482 Colores2

PC3270HI0720X3502 Colores1

IBM8514LO0640X480256 Colores

IBM8514HI11024X768256 Colores

Si la tarjeta es de 64 K o la tarjeta es de 256 KErrores:

Cdigos de Errores

ConstanteCdigoSignificado

grOk

0Ningn error

grNoInitGraph

-1Grficos no iniciados

grNotDetected-2Ningn adaptador grfico detectado

grFileNotFound

-3Fichero de dispositivo no encontrado

grInvalidDriver-4Fichero de dispositivo no vlido

grNoLoadMem

-5No hay memoria para cargar dispositivo

grNoScanMem

-6No hay memoria para rellenar

grNoFloodMem

-7No hay memoria para usar floodfill

grFontNotFound

-8Fichero de fuente no encontrado

grNoFontMem

-9No hay memoria para cargar la fuente

grInvalidMode

-10Modo grfico no vlido

grError

-11Error grfico

grIOerror

-12Error grfico de Entrada/Salida

grInvalidFont

-13Fichero de fuente no vlido

grInvalidFontNum

-14Nmero de fuente no vlido

grInvalidDeviceNum

-15Nmero de dispositivo no vlido

grInvalidVersion-18Nmero de versin no vlido

Put_op:

Operaciones con putimage

ConstanteValorSignificado

COPY_PUT0Sobrescribir los pxeles existentes

XOR_PUT1Operacin OR Exclusivo con los pxeles

OR_PUT2Operacin OR Inclusivo con los pxeles

AND_PUT3Operacin AND con los pxels

NOT_PUT4Invertir la imagen

Nota: Estas operaciones se usan exclusivamente con la funcin putimage. El cual veremos en captulos posteriores.

Mtodos de Inicializacin del modo grafico.

Antes de conocer los mtodos de inicializacin debemos conocer la funcin initgraph la cual nos permitir realizar grficos.Funcin initgraph

void far initgraph(int far *driver, int far *modo, int far *path);

Esta funcin es usada para cargar o validar un dispositivo grfico y cambiar el sistema de vdeo a modo grfico. La funcin initgraph debe ser llamada antes de cualesquier Funcines que generan una salida grfica sean usadas. Existen varios valores a ser usados para el argumento *driver. Si *driver es asignado a DETECT, 0, la

funcin detectgraph es llamada, y un dispositivo y modo grfico apropiados son seleccionados. Asignando a *driver cualquier otro valor predefinido inicia la carga del dispositivo grfico correspondiente. Existen varios valores a ser usados para el argumento *modo. Estos valores deberan corresponder al dispositivo especificado en el argumento *driver. El argumento *path especificad el directorio donde los dispositivos grficos estn localizados. La funcin initgraph buscar el dispositivo primeramente en este directorio. Si no es encontrado, la funcin buscar en el directorio de inicio. Cuando el argumento *path es NULL, solamente el directorio de inicio es buscado.

Otra forma para evitar cargando el dispositivo desde el disco cada vez que el programa es ejecutado es ligarlo o enlazarlo al dispositivo apropiado en un programa ejecutable.

La funcin initgraph no retorna ningn valor. Sin embargo, cuando la funcin initgraph es llamada, el cdigo de error interno es activado. Si la funcin initgraph termina con xito, el cdigo es asignado un 0. Si no, el cdigo es asignado as:

-2 grNotDetected La tarjeta grfica no se encontr

-3 grFileNotFound El fichero del dispositivo no se encontr

-4 grInvalidDriver El fichero del dispositivo es invlido

-5 grNoLoadMem No hay suficiente memoria para cargar el dispositivo

Ejemplo:

#include

#include

void main() {

int driver = EGA;

int modo = EGAHI;

initgraph( &driver, &modo, C:\\TC20\\BIN );

circle( 300, 200, 80 );

getch(); /* Pausa */

closegraph();

getch();

}

Existen diferentes mtodos de inicializacin pero en este pequeo tutorial trataremos dos que suelen ser los ms utilizados hoy en da.1. Mtodo de inicializacin del modo grafico a prueba de errores.

#include

# include

# include

void main() {

int driver = VGA;

int modo = VGAHI;

int resultado;

initgraph(&driver,&modo,"c:\\tc20\\bin");

resultado=graphresult();

if(resultado!=grOk)

{

getch();

exit(0);

}

getch();

}

cuerpo del programa2. Mtodo de inicializacin rpido del modo grafico.

#include

void main() {

int driver = DETECT,modo;

initgraph(&driver,modo, c:\\tc20\\bin);

cuerpo del programadriver: Es la direccin de la variable que contiene el cdigo del tipo de de driver o adaptador que tiene la computadora.

modo: Es la direccin de la variable que contiene el cdigo del modo en que se podr adaptar.

c:\\tc20\\bin: Es el directorio donde se encuentra el cdigo del manejador, puede ser camino relativo o absoluto.

graphresult():Regresa el cdigo error de la ultima llamada a una funcin grafica de turbo c un valor de 0 significa que no hubo error.

grOk : regresa el cdigo de error de la funcin graphresult().

DETECT: Dispositivo grafico de auto deteccin del la tarjeta de video y del modo grafico.

Qu son los primitivos grficos?Definicin.

Un primitivo grfico es un elemento fundamental de dibujo en un paquete grafico tal como un punto, lnea, o circulo; puede ser un carcter, o puede ser una operacin tal como relleno, coloreado o trasferido de la imagen. C cuenta con 5 grupos de primitivos grficos.

Figuras geomtricas: Dibujan las figuras de la geometra clsica: lneas, crculos, rectngulos, arcos, polgonos etc. Relleno: tiene dos formas de realizarse. El primero es con polgonos, donde se definen los vrtices del polgono a ser rellenado segunda es una operacin grafica que busca algortmicamente las fronteras de la regin del relleno. Rasterop: Es una operacin grafica que copia el rea de una imagen para luego dibujarla en cualquier regin de la pantalla. Grficas Matemticas: Dibujan los primitivos barras y sectores para conseguir dibujar las herramientas del sector. Texto Grfico: Sirve para escribir texto en modo grafico, utilizando diferentes fuentes.

Figuras geomtricas:LINEAS.

void far line(int x1, int y1, int x2, int y2);

Esta funcin es usada para conectar dos puntos con una lnea recta. El primer punto es especificado por los argumentos x1 e y1. El segundo punto es especificado por los argumentos x2 e y2. La lnea se dibuja usando el estilo de lnea actual, el grosor, y el color actual. La posicin del cursor grfico no es afectada por la funcin line.

La funcin line() no retorna ningn valor.

Ejemplo:

#include

#include

void main() {

int driver = EGA,modo = EGAHI;

initgraph( &driver, &modo, "c:\\tc20\\bin" );

line( 20, 40, 350, 100 );

line( 400, 30, 50, 250 );

getch();

closegraph();

}CIRCULOS.

void far circle(int x, int y, int radio);

Esta funcin se utiliza para dibujar un crculo. Los argumentos x e y definen el centro del crculo, mientras que el argumento radio define el radio del crculo. El crculo no es rellenado pero es dibujado usando el color actual.

El grosor de la circunferencia puede ser establecido por la funcin setlinestyle; sin embargo, el estilo de la lnea es ignorado por la funcin circle.

La funcin circle no retorna ningn valor.

Ejemplo:

#include

#include

void main() {

int driver = EGA;

int modo = EGAHI;

initgraph( &driver, &modo, "C:\\tc20\\BIN" );

circle( 300, 200, 80 );

getch(); /* Pausa */

closegraph();

}RECTANGULOS.void far rectangle(int izquierda,int superior, int derecha, int inferior);

Esta funcin dibujar un rectngulo sin rellenar su interior usando el color actual. La esquina superior izquierda del rectngulo est definida por los argumentos izquierdos y superiores. Estos argumentos corresponden a los valores x e y de la esquina superior izquierda. Similarmente, los argumentos derecha e inferior definen la esquina inferior derecha del rectngulo. El permetro del rectngulo es dibujado usando el estilo y grosor de lnea actuales.

La funcin rectangle() no retorna ningn valor.

Ejemplo:

#include

#include

void main() {

int driver = EGA,modo = EGAHI;

initgraph( &driver, &modo, "C:\\tc20\\bin" );

rectangle( 20, 20, 400, 300 );

getch(); /* Pausa */

closegraph();

}ARCOS

void far arc(int x, int y,int comienzo_angulo, int final_angulo, int radio);

Esta funcin crear un arco circular. El arco tiene como centro el punto especificado por los argumentos x e y, y es dibujado con el radio especificado: radio. El arco no est rellanado, pero es dibujado usando el color actual. El arco comienza al ngulo especificado por el argumento comienzo_angulo y es dibujado en la direccin contraria al de las agujas del reloj hasta llegar al ngulo especificado por el argumento final_angulo. La funcin arc usa el este (extendindose hacia la derecha del centro del arco en la direccin horizontal) como su punto de 0 grados. La funcin setlinestyle puede usarse para establecer el grosor del arco. La funcin arc, sin embargo, ignorar el argumento trama de la funcin setlinestyle.

La funcin arc no retorna ningn valor.

Ejemplo:

#include

#include

void main() {

int driver = EGA,modo = EGAHI,radio;

initgraph( &driver, &modo, "C:\\tc20\\bin" );

for( radio = 25; radio < 175; radio += 25 )

arc( 320, 175, 45, 135, radio );

getch(); /* Pausa */

closegraph();

}PIXELES.

void far putpixel(int x, int y, int color);

Esta funcin es usada para colocar a un pxel en una posicin en particular la cual es cuestionada por los argumentos x e y. El argumento color especfico el valor del color del pxel.

La funcin putpixel no retorna ningn valor.

Ejemplo:

#include

#include

void main() {

int driver = EGA,modo = EGAHI,t;

initgraph( &driver, &modo, c:\\tc20\\bin );

for( t=0; tv[y]-a->v[y])-(c->v[x]-a->v[x]);

}

2.D V (P) (P) [programacin] . Modifique el cdigo del dt2.c para computar el diagrama de Voronoi de la triangulacin de Delaunay. (Vea ejercicio 5.5.6 [1]). Hay que repetidamente construir crculos a travs de tres puntos dadas a, b, c. Las coordenadas de la p central = (p0, p1) pueden ser computadas como sigue:

A = b0 a0,

B= b1 a1,

C = c0 a0,

D = c1 a1,

E = A(a0 + b0 ) + B(a1 + b1 ),

F = C(a0 + b0 ) + D(a1 + b1 ),

G = 2(A(c1 b1 ) B(c0 b0 )),

p0 = (DE BF)/G,

p1 = (AF CE)/G.

Tabla 5.1 Coordenadas de sitios de Delaunay, Incluyendo z= x2 +y2

IXYX2+y2

031-766737

1-1321610

2-63-8310858

3-5-664381

487-9416405

540716641

623-462645

764-8010496

80-573249

9-142200

5.8 Conexin a arreglos

Tenemos que mostrar que la triangulacin de Delaunay puede ser derivada de la transformacin paraboloide e indican que es fcil de obtener el diagrama de Voronoi si es posible obtener el diagrama de Voronoi directamente de la transformacin del paraboloide. Aunque todo esto se entiende que tienes que esperar al siguiente capitulo (Seccin 6.7) y mostraremos la conexin que se realiza utilizando las ecuaciones mas relevante.

5.8.1 Diagrama de Voronoi unidimensional

Considerando dos tangentes examinadas en la seccin 5.7.1 (ecuacin 5.4) siendo x=a y otro siendo x=b:

z=2ax-a2

z=2bx b2

Donde se intersecan resolviendo las ecuaciones simultneas la solucin sera

2ax-a2 = 2bx b2,

x(2a 2b)=a2 b2,

x=(a+b)(a-b)

2(a-b)

x= a+b

2

De esta manera la proyeccin de las intersecciones estn adyacentes al diagrama de Voronoi y al grupo de puntos

5.8.2 Diagrama de Voronoi bidimensinal

Considere dos tangentes planas del paraboloide analizado en la Seccion (5.7.2) (ecuacin 5.8), donde estan a y b y otra donde esta c y b.

z = 2ax + 2by a2 + b 2,

z = 2cx + 2dy c2 + d2

donde estn los intersectos? Resolviendo la ecuacin simultanea

2ax + 2by a2 + b 2 = 2cx + 2dy c2 + d2

x(2a 2c) + y(2b 2d) = ( a2 - c 2) + (a2 + b 2 )

Esta ecuacin es precisamente la bisectriz perpendicular del segmento de (a,b) y (c,d) ver figura 5.31.

Si observamos las tangentes opacas planas de z=+infinito (con el paraboloide transparente) debera ser visible en la primera interseccin su primera interseccin es la bisectriz entre los lugares que generan las tangentes planas la proyeccin de estas primeras tangentes es precisamente el diagrama de voronoi!

Tambin tenemos que recordar la situacin al visualizar la proyeccin de puntos dentro del paraboloide de z=-infinito vea la triangulacin de Delaunay la observacin de las tangentes planas del paraboloide y estos puntos de z=+infinito vea el diagrama de Voronoi.

Bibliografa

[1] M. Berg, M. Kreveld, M. Overmars, O. Schwarzkopf. Computational Geometry, Algorithms

and Applications. Springer, 1997.

[2] M. Kreveld, J. Nievergelt, T. Roos, P. Widmayer. Algorithmic Foundations of Geographic

Information Systems. Springer, 1997.

[3] J. O'Rourke. Computational Geometry in C. Cambridge University Press, 1994.

[4] F. P. Preparata y M. I. Shamos. Computational geometry: an introduction. Springer-Verlag,

New York, 1985.

73El algoritmo: El ALGORITMO DE KRUSKAL

Ponga en cortocircuito bordes de G por el largo por ah: E1, e2

Inicializar T para que este vaco

Mientras la T no avanza a rastras haga

Si T + e1 es acclica

Entonces T + T + ei

Ii + 1

El algoritmo 5.2 el algoritmo de Kruskal.

PAGE 49Juan Carlos Gutirrez Barquero____________________________________________

_1179663656.unknown

_1179668719.unknown

_1179678695.unknown

_1179693453.unknown

_1179700381.unknown

_1179695675.unknown

_1179696524.unknown

_1179696567.unknown

_1179696051.unknown

_1179695215.unknown

_1179679883.unknown

_1179691343.unknown

_1179691398.unknown

_1179691331.unknown

_1179679176.unknown

_1179679792.unknown

_1179678713.unknown

_1179672482.unknown

_1179677206.unknown

_1179677304.unknown

_1179672574.unknown

_1179669045.unknown

_1179672157.unknown

_1179668731.unknown

_1179666231.unknown

_1179666343.unknown

_1179667591.unknown

_1179666318.unknown

_1179664529.unknown

_1179665328.unknown

_1179663885.unknown

_1179561080.unknown

_1179564294.unknown

_1179564396.unknown

_1179564500.unknown

_1179564342.unknown

_1179563861.unknown

_1179563934.unknown

_1179563814.unknown

_1179560078.unknown

_1179560082.unknown

_1179560084.unknown

_1179560085.unknown

_1179560083.unknown

_1179560080.unknown

_1179560081.unknown

_1179560079.unknown

_1179404276.unknown

_1179560076.unknown

_1179560077.unknown

_1179560075.unknown

_1179472947.unknown

_1179315171.unknown

_1179318598.unknown

_1179403373.unknown

_1179318508.unknown

_1179315105.unknown