Modo Grafico * Graphics.h

Anuncio
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
Descargar