Continuación del tema 6
Función
setusercharsize
void far setusercharsize(int x_dividendo,
int x_divisor,int y_dividendo, int y_divisor);
Esta
función extablece las características de fuentes escalables. Para que esta
función afecte el tamaño del carácter, el argumento tam_caracter de la
función settextstyle debe ser 0. La anchura del
carácter se establece con los argumentos x_dividendo y x_divisor que
representan la proporción. Similarmente, los argumentos y_dividendo e y_divisor
especifican la altura del carácter.
La
función setusercharsize no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA;
int
modo = EGAHI;
char
mensaje[40];
char
nombre[25];
printf(
"Escribe tu nombre: " );
scanf(
"%s", nombre );
sprintf(
mensaje, "Hola %s!", nombre );
initgraph( &driver, &modo, “C:\\TC20\\BIN” );
settextstyle( SANS_SERIF_FONT, 0, 0 );
setusercharsize( 1, 4, 1, 2 ); /* 25% de ancho; 50% de
alto */
outtextxy( 100, 50, mensaje );
settextstyle( SANS_SERIF_FONT, 0, 1 );
outtextxy( 100, 125, mensaje );
settextstyle( SANS_SERIF_FONT, 1, 0 );
setusercharsize(
1, 2, 3, 4 ); /* 50% de ancho; 75% de alto */
outtextxy( 400, 150, mensaje );
getch();
closegraph();
getch();
}
Función setviewport
void far setviewport(int izquierda, int superior,int derecha, int
inferior, int recorte_banderin);
Esta
función es usada para definir el área gráfico. La esquina superior izquierda
del área gráfica está definida por los argumentos izquierda y superior.
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 área gráfica. El argumento recorte_banderin define
si los datos para la salida gráfica serán recortados por el borde del área
gráfico. Un valor de 0 para recorte_banderin indica que los datos de
salida no serán recortados, mientras que un valor distinto a 0 indica que los
datos serán recortados. Cuando el área gráfica es inicializada, la posición del
cursor será mudado a la posición (0,0) (la esquina superior izquierda). Todos
los datos de salida
después
de que el área gráfica haya sido inicializada serán con relación a este punto.
El área gráfica por defecto cubre la pantalla entera.
La
función setviewport no retorna ningún valor; sin embargo, si los valores
pasados son inválidos, entonces la función graphresult
retorna grError (-11) y el área gráfica no
será alterada.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA, modo = EGAHI;
initgraph( &driver, &modo,
"C:\\TC20\\BIN" );
lineto( 100, 100 );
outtextxy( 15, 5, "Inicial" );
getch();
setviewport( 250, 200, 450, 300, 0 );
setcolor(
9 );
lineto(
100, 100 );
outtextxy(
15, 5, "Nueva" );
moveto(
0, 0 );
lineto(
-50, -20 ); /* Fuera del área */
getch();
setviewport(
250, 200, 450, 300, 1 );
setcolor(
4 );
moveto(
120, 40 );
lineto(
150, -20 ); /* Fuera del área */
outtextxy( 25, 15, "Con recorte" );
getch(); /* Pausa */
closegraph();
getch();
}
Función
setvisualpage
void far setvisualpage(int pagina);
Esta
función es usada para establecer la página visual como es especificado por el
argumento pagina. Una página es una sección de memoria donde se guarda
la información del vídeo. Cuando se usa con un sistema (EGA o VGA) con suficiente
memoria de vídeo para soportar múltiples páginas de gráficos, la función setvisualpage
(junto con la función setactivepage) permite
al programador crear gráficos en páginas escondidas y pasar de página entre las
que se han definido con información gráfica. Esto es la base para crear
animación.
La
función setvisualpage no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA;
int
modo = EGAHI;
int
visual=1;
printf(
"Instrucciones:\nPulsa el espacio para cambiar de página, cualquier otra
tecla para salir\n" );
printf(
"(Pulsa cualquier tecla para entrar en modo gráfico)\n" );
getch();
initgraph( &driver, &modo,
"C:\\TC20\\BIN" );
setactivepage( 0 );
setfillstyle( SOLID_FILL, 6 );
sector( 300, 150, 45, 315, 150, 50 );
setactivepage( 1 );
setfillstyle( SOLID_FILL, 6 );
sector( 300, 150, 90, 270, 150, 50 );
while( getch() == ' ' ) {
setvisualpage( visual );
visual = 0==visual ? 1 : 0;
}
closegraph();
getch();
}
Función
setwritemode
void far setwritemode(int modo);
Esta
función es usada para establecer el modo lógico de escritura para líneas
rectas. El argumento modo especifica el modo de escritura, el cual
determina la interacción entre valores de píxeles existentes y los valores de píxeles
en la línea. Existen dos valores para los
modos de escritura.
La
función setwritemode no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA;
int modo = EGAHI;
initgraph( &driver, &modo,
"C:\\TC20\\BIN" );
setfillstyle( SOLID_FILL, 1 );
bar( 50, 50, 500, 300 );
setwritemode( COPY_PUT );
setcolor( 10 );
line( 20, 60, 220, 100 );
setwritemode( XOR_PUT );
line( 20, 80, 220, 120 );
getch();
closegraph();
getch();
}
Función textheight
int far textheight(char far *texto);
Esta
función es usada para determinar la altura, en píxeles, de la cadena de texto
especificada por el argumento *texto. La altura del texto se determina
usando la fuente actual y el tamaño del carácter.
La
función textheight retorna la altura, en píxeles, del texto especificado
por el argumento.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA;
int
modo = EGAHI;
int
anchura, altura;
char
mensaje[5] = "Hola";
initgraph(
&driver, &modo, "C:\\TC20\\BIN" );
outtextxy(10,10,mensaje);
anchura
= textwidth( mensaje );
altura = textheight( mensaje );
getch();
closegraph();
printf(
"El mensaje: \"%s\" tiene de anchura: %d y altura: %d\n",
mensaje,
anchura,
altura );
printf(
"Pulsa una tecla para continuar...\n" );
getch();
}
Función textwidth
int far textwidth(char far *texto);
Esta
función es usada para determinar la anchura, en píxeles, de la cadena de texto
especificada por el argumento *texto. La anchura del texto se determina
usando la fuente actual y el tamaño del carácter.
La
función textwidth retorna la anchura, en píxeles, del texto especificado
por el argumento.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA;
int
modo = EGAHI;
int
anchura, altura;
char
mensaje[5] = "Hola";
initgraph(
&driver, &modo, "C:\\TC20\\BIN" );
outtextxy(10,10,mensaje);
anchura
= textwidth( mensaje );
altura = textheight( mensaje );
getch();
closegraph();
printf(
"El mensaje: \"%s\" tiene de anchura: %d y altura: %d\n",
mensaje,
anchura,
altura );
printf(
"Pulsa una tecla para continuar...\n" );
getch();
}
No hay comentarios:
Publicar un comentario