Varios

Varios gy uickwizu I Acza6pR 03, 2010 | S pagos UTN-FRBB Informática II Introducción a la programación en modo gráfico usando BorlandC++ / TurboC++ Las siguientes son una serie de pautas básicas para el desarrollo de programas en modo gráfico, usando BorlandC++ o TurboC+ 4 para MS-DOS. Puede haber alguna diferencia menor según la versión de que se trate. ) Incluir 2) En las opciones del linker (Menu: Options Linker), debe estar habilitada la librería gráfica. 3) Iniciar el modo gráfico (mediante la función initgraph()) Los pasos que se indican a continuación inicializan el modo ráfico con una resolución que dependerá del tipo de controlador de video para VGA o SVGA, los pixels en X: 640 pixel int main(void) { int gd Intenta abrir el modo ue ten a instalada la computadora. rs son: olores: 16/ #include errorcode; river, &gmode, Verifica si hubo algún error errorcode = graphresult(); Si hubo algún error y no se pudo abrir el modo gráfico, finaliza el programa *l if (errorcode grok) { printf(«Error: no se pudo iniciar el modo gráfico grapherrormsg(errorcode)); exit(l); } Imprime un texto en modo gráfico, a modo de ejemplo *l outtextxy(0,0,»HOLA,

ESTAMOS EN MODO GRAFICO»); cierra el modo gráfico retorna a modo

Lo sentimos, pero las muestras de ensayos completos están disponibles solo para usuarios registrados

Elija un plan de membresía
texto *l Cl Osegraph(); Swlpe to vlew next page Gráficos en C UTN-FRBB Informática II Algunos detalles: La función initgraph() tiene tres parámetros: El primero es un puntero a un entero (en el ejemplo se llama gdriver), cuyo contenido es un código que indica el driver que se desea cargar. Al haber cargado gdriver con el valor DETECT, se deja que initgraph() determine el driver mas conveniente. En el caso de VGA el archivo del driver correspondiente es: EGAVGA. BGI.

El segundo es otro untero a entero (en el ejemplo se llama gmode), en el cual se puede seleccionar algún modo en particular. Al haber optado por autodetectar el driver, el modo también es definido por initgraph(). El tercer parámetro es una cadena que indica el camino (path) para que initgraph() pueda encontrar el driver. En caso de que el driver esté ubicado en el mismo directorio desde donde se ejecuta el programa, se puede colocar en este parámetro una cadena vacía Sintaxis y detalles de algunas funciones. int getmaxx(void); Retorna el valor máximo en el sentido de las X.

Por ejemplo: ara VGA getmaxx() retorna 639. int getmaxy(void); Retorna el valor máximo en el sentido de las Y. Por ejemplo: para VGA getmaxx() retorna 479. int getmaxcolor(void); Retorna el número de color máximo que se puede utilizar. por ejemplo: para VGA getmaxcolor() retorna 15 ( • los colores son 16, van del 0 al 1 S). void setcolor(int color); Permite establecer el color con que posteriormente graficarán distint RI_IFS color); Permite establecer el color con que posteriormente graficarán distintas funciones (line(), circle(), etc. ).

Por ejemplo: setcolor(EGA GREEN); -4 establece el color VERDE void etbkcolor(int color); permite establecer el color de fondo. por ejemplo: setbkcolor(EGA_BLUE) pone el fondo de color azul. void putpixel(int x, int y, int col); Pinta el pixel correspondiente a las coordenadas (x,y), con el color indicado por . Ejemplo: putpixel( 10, 20, EGA_YELLOW 2 UTN-FRBB Informática II void line(int XI, int yl, int x2, int y2); Traza una línea del color previamente establecido mediante setcolor(), desde las coordenadas (XI ,yl), hasta las coordenadas (x2,y2).

Ejemplo: line(10, 10, 50, 100); void circle( int x, int y, int r); Dibuja una círculo, con centro en (x,y) radio r. Ejemplo: circle( 100, 80, 50 void lineto( int x, •nt y Traza una linea del color previamente establecido mediante setcolor(), desde la posición actual (donde finalizó el dibujo anterior), hasta las coordenadas (x,y). Ejemplo: linet0(50, 100); void moveto( int x, int y ); Mueve el cursor (sin dibujar nada) hasta la coordenada (x,y). Ejemplo: lineto(50, 100); void outtextxy(int x, int y, char * txt); Imprime el texto apuntado por *txt, a partir del punto dado por las coordenadas (x,y).

Ejemplo: outtextxy(10, 10, «HELLO»); Nota: el tamaño, tipo de etra, estilo y orientación del texto se deben definir previamente mediante la función settextstyle() -se verá más adelante 31_1fS texto se deben definir previamente mediante la función settextstyle() -se verá más adelante- void rectangle( int XI, int yl, int x2, int y2 Dibuja un rectángulo cuyo vértice superior izquierdo está dado por (XI ,yl), y cuyo vértice inferior derecho está dado por (x2,y2). oid bar( int XI, int yl, int x2, inty2 ); Dibuja un rectángulo relleno cuyo vértice superior izquierdo está dado por (XI ,yl), y cuyo vértice inferior derecho está dado por (x2,y2). Nota: El color y trama del relleno se deben definir previamente mediante setfillstyle() – se verá más adelante-. void setlinestyle(int estilo, int patron, int grosor); Permite definir el estilo que tendrán las líneas trazadas con line() y lineto().

El valor por defecto es «SOLID_LINE», línea contínua. Para línea punteada debe usarse «DOTTÉD_LINE». Los valores en patrón y grosor van en cero (si estilo es «USERBIT_LINE» éstas se usan para definir el patrón de pixels y grosor de la línea). UTN-FRBB Informática II void setfillstyle( int patron, int color ); Permite establecer el patrón y color de relleno que será usado por funciones como baro y sector() entre otras.

Los valores por defecto son SOLID_FILL y color EGA_WHITE. por ejemplo: EGA_GREEN); Dibuja un rectángulo y lo rellena con líneas horizontales de color verde. void settextstyle( int font, int direction, int charsize ); Permite establecer el tipo de letra, orientación del texto y tamaño de letra usad 406 S charsize ); Permite establecer el tipo de letra, orientación del texto y tamaño de letra usado por outtextxy() y outtext().

El ipo de letra (font) puede ser: DEFAULT FONT, TRIPLEX_FONT, SMALL_FONT, SANS SERIF FONT o GOTHIC_FONT. La orientación del texto puede ser horizontal (HORIZ_DIR) o vertical (VERT_DIR). El tamaño de letra es proporcional el valor numérico dado en el tercer parámetro. void int horizontal, int vertical Permite establecer la justificación del texto escrito mediante outtextxy(), en relación a las coordenadas x ey indicadas.

Las opciones son: Para horiz LEFT TEXT, CENTER TEZ, RIGHT TEX’T Para vertical: BOTTOM_TEXT, CENTER_TEXT, TOP_TEXT LOS valores por defecto on: LEFT TEX’T y BOTTOM_TEXT Cl texto horizontal se escribe a partir de x hacia la derecha; el texto vertical se escribe desde y hacia arriba) 4 Ejemplos 1) Suponiendo que ya está inicializado el modo gráfico, y que la resolución es de 640 x 480 con 16 colores (lo habitual cuando se utiliza un monitor VGA o SVGA), vamos a graficar la función sen x, para x entre 0 y 21T. oid graf_seno() { int i, j; double x, y; setbkcolor(EGA_BLACK); cleardevice(); setcolor(EGA_LlGHTBLUE); // color para el fondo // color para los ejes line(20,O,20,479); // traza el eje y dejando un margen de 20 pixels traza SÜFS