UNIVERSIDAD TECNOLÓGICA DE PANAMÁ FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES PROGRAMACION APLICADA I GRAFICOS PROF. Dra. ADDYS DE LAM INTEGRANTES ACEVEDO, LAUREN 8-845-560 MARTINEZ, MAURICIO 8-841-472 PAU, RICARDO RODRIGUEZ, DAN 8-845-1130 VIVAR, LUIS E. 8-857-210 GRUPO: 1-IL-122 6 DE JUNIO DE 2011 Índice Introducción y objetivos……………………………………… 3 Búsqueda en arreglos……………………………….. ………………. 4 Clasificación de Arreglos………………………… 5 Clasificación de los algoritmos de ordenamiento de información……..12 Programa Ejemplo …………………………………………………………………………………….13 Conclusión……………………………………………………………………14 Web. Grafía……………………………………………………………………15 Estructura de un programa grafico en C Las funciones que llevan a cabo los gráficos en C es permitir generar dibujos y presentaciones de los programas en general (es decir, la forma en que lucen al usuario). Las funciones de salida dependen del adaptador y del monitor que se esté utilizando. El controlador seleccionado se carga desde el disco durante la inicialización de la biblioteca de gráficos llamado initgraph(), y se necesita incluir la librería #include <graphic.h> Para activar el modo grafico un programa, éste debe de empezar llamando a la funcion initgraph(), que inicializa el paquete de gráficos BGI. Para desactivar el modo grafico del programa se usa la función closegraph que implica la devolución al sistema de la memoria que se utilizaba para tener los controladores y las fuentes graficas en uso. En el modo gráfico existe una enorme cantidad de funciones que realizan desde la tarea mas sencilla como es pintar un píxel, hasta la tarea más compleja como pudiera ser dibujar un carácter por medio de trazos. Para trabajar el modo gráfico es necesario incluir la librería graphics.h como hacer uso de la BGI (Borlan Graphics Interphase) Para usar cualquier función es necesario colocar el adaptador de video en modo grafico y esto se logra a través de la función initgraph(); y al terminares necesario regresar al modo original a través de la función closegraph(); Para iniciar un programa en ambiente gráfico es recomendable correr una subrutina de inicialización de gráficos y detección de errores. Por ejemplo: #include <conio.h> #include <stdlib.h> #include <dos.h> #include <graphics.h> //Esta es la librería que nos permite usar gráficos. void main() { int gdriver=DETECT, gmode, contador=0; initgraph(&gdriver,&gmode,"C:\\BORLANDC\\BGI"); //Iniciamos el modo gráfico. do { setcolor(random(15)); //Establecemos un color aleatorio line(random(640),random(480),random(640),random(480)); //Establecemos coordenadas aleatorias. setcolor(random(15)); rectangle(random(640),random(480),random(640),random(480)); setcolor(random(15)); ellipse(random(640),random(480),0,360,random(100),random(100)); contador+=1; //Por cada vuelta incrementamos contador en 1. if(contador%100==0) { cleardevice(); } //Si contador es múltiplo de 100, limpia la pantalla. delay(100); //Establecemos un retardo de 100 milisegundos al dibujar las figuras. } while(!kbhit()); //Si se pulsa alguna tecla, salimos del programa. closegraph(); } //Cerramos el modo gráfico. Modalidades de Video En la actualidad, prácticamente todas las tarjetas adaptadoras de video son de tipo VGA, siglas que significan Video Graphics Array, aunque no tardaron en rebautizar el término por éste otro: Video Graphics Adaptor, de cualquier forma nos estamos refiriendo a la tarjeta controladora de video de la PC. Existen diferentes tipos de adaptadores de video,monocromos, de color de mediana resolución (CGA y MCGA), y de color de alta resolución(EGA y VGA). Para cada uno de los adaptadores de video existen diferentes modalidades de video que se utilizan para desplegar sea texto ó gráficos, ésta es la lista: Modo Resolución Tipo Adaptador 0h 40 x 25 B. y N. Alfanumérico CGA/EGA/VGA 1h 40 x 25 Color Alfanumérico CGA/EGA/VGA 2h 80 x 25 B. y N. Alfanumérico CGA/EGA/VGA 3h 80 x 25 Color Alfanumérico CGA/EGA/VGA 4h 320 x 200 Color Gráfico CGA/EGA/VGA 5h 320 x 200 B. y N. Gráfico CGA/EGA/VGA 6h 640 x 200 B. y N. Gráfico CGA/EGA/VGA 7h 80 x 25 B. y N. Alfanumérico EGA/VGA (mono) 13h 320 x 200 Color Gráfico EGA/VGA 14h 640 x 200 Color Gráfico EGA/VGA 15h 640 x 350 Color Gráfico EGA/VGA (mono) 16h 640 x 350 Color Gráfico EGA/VGA Como podemos observar, es posible utilizar todas las modalidades de video si contamos con un adaptador de tipo VGA. Para el propósito de éste artículo, interesa en particular el modo de video 13h en el cual la pantalla tiene una resolución de 320 pixeles de ancho por una altura de 200 pixeles de tal manera que al establecer un sistema de coordenadas, el punto (0,0) está ubicado en la esquina superior izquierda de la pantalla del monitor, siendo el extremo opuesto de la pantalla el correspondiente a la coordenada (319, 199), (Fig. 1). Como ya se dijo, la resolución es de 320 x 200 pixeles en tanto que la capacidad de color es de 256 colores diferentes, es decir, podemos representar cada uno de los diferentes colores utilizando un byte de memoria. Como la resolución demanda una cantidad igual a 320x200=64000 pixeles, necesitamos por lo tanto 64000 bytes de memoria RAM de video. Colores Colores de Fondo Constante Valor Significado BLACK 0 Negro BLUE 1 Azul GREEN 2 Verde CYAN 3 Cían RED 4 Rojo MAGENTA 5 Magenta BROWN 6 Marrón LIGHTGRAY 7 Gris Claro DARKGRAY 8 Gris Oscuro LIGHTBLUE 9 Azul Claro LIGHTGREEN 10 Verde Claro LIGHTCYAN 11 Cían Claro LIGHTRED 12 Rojo Claro Magenta LIGHTMAGENTA 13 Claro YELLOW 14 Amarillo WHITE 15 Blanco Colores para Modos de 16 Colores Constante Valor Significado BLACK 0 Negro BLUE 1 Azul GREEN 2 Verde CYAN 3 Cían RED 4 Rojo MAGENTA 5 Magenta BROWN 6 Marrón LIGHTGRAY 7 Gris Claro DARKGRAY 8 Gris Oscuro LIGHTBLUE 9 Azul Claro LIGHTGREEN 10 Verde Claro LIGHTCYAN 11 Cían Claro LIGHTRED 12 Rojo Claro LIGHTMAGENTA 13 Magenta Claro YELLOW 14 Amarillo WHITE 15 Blanco Colores para modos de CGA Númer o de Paleta 0 1 2 3 Valor asigna do: Color 1 Signific ado Color 2 Signific ado Color 3 CGA_LIGHT GREEN CGA_LIGHT CYAN Signific ado Verde CGA_LIGHTRE Rojo CGA_YELL Amarillo Claro D Claro OW Cían CGA_LIGHTMA Magent CGA_WHIT Blanco Claro GENTA a Claro E CGA_BROW CGA_GREEN Verde CGA_RED Rojo Marrón N CGA_MAGENT Magent CGA_LIGHT Gris CGA_CYAN Cían A a GRAY Claro 1 2 3 La CGA ofrecía dos modos gráficos usados habitualmente: 320×200 píxeles, como en el modo de texto de 40×25. Sin embargo, en el modo gráfico era posible acceder a cada píxel individualmente, aunque sólo 4 colores podían ser mostrados simultáneamente. Esos 4 colores no se podían elegir libremente de entre los 16 totales, ya que sólo había dos paletas oficiales para este modo: Magenta, cian, blanco y el color de fondo (negro por defecto). Rojo, verde, marrón/amarillo y el color de fondo (negro por defecto). Activando el bit de intensificación era posible conseguir versiones más brillantes de estos colores. La relación de aspecto de 1:1.2 debía ser tenida en cuenta a la hora de dibujar grandes formas geométricas en la pantalla. 640×200 píxeles, como en el modo de texto de 80×25. Todos los píxeles podían ser accedidos libremente. Este modo era monocromo, permitiendo solamente los colores blanco y negro (aunque esto podía ser cambiado), con una relación de aspecto de 1:2.4. En el modo de texto, los mapa de bits de las tipografías provenían de la ROM de caracteres, que sólo era accesible para la propia tarjeta. En los modos gráficos, en cambio, la salida de texto usaba dos tablas diferentes: los primeros 128 caracteres del conjunto eran obtenidos de una tabla en la BIOS en la dirección F000:FA6E, y los 128 restantes provenían de la dirección indicada por la interrupción 1F (0000:007C). Esta segunda mitad aparecía como espacios en blanco (o como caracteres sin sentido, depende de la implementación) a menos que fueran definidos explícitamente, normalmente por una utilidad como GRAFTABL o por el programa ejecutado. Funciones Graficas y Especificaciones de Coordenadas Las especificaciones de coordenadas en modo grafico de C, se hacen a base de pixeles. Cada funcion en C utiliza las mismas especificaciones tomando los valores de las coordenadas de los pixeles (x,y), como se hacía en modo texto con las coordenadas, y pasándolos a las funciones de la biblioteca Graphics como argumentos para las funciones. Son alrededor de 81 funciones en modo gráficos arc bar bar3d circle cleardevice clearviewport closegraph detectgraph drawpoly ellipse fillellipse fillpoly floodfill getarccoords getaspectratio getbkcolor getcolor getdefaultpalett 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 installuserdrive installuserfont line linerel lineto moverel moveto outtext outtextxy pieslice putimage putpixel rectangle registerbgidrive registerbgifont restorecrtmode sector setactivepage setallpalette setaspectratio setbkcolor setcolor setfillpattern setfillstyle setgraphbufsiz e setgraphmode setlinestyle setpalette setrgbpalette settextjustify settextstyle setusercharsiz e setviewport setvisualpage setwritemode textheight textwidth Modo Grafico – Graphics.h Bibliografía y Web-Grafía 10 2011