Función setviewport Borland® C
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 incializada, 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.
Valor de retorno:
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> int main() { int gdriver = EGA; int gmodo = EGAHI; int color; /* Si has registrado los dispositivos para que formen parte de graphics.lib ** entonces usa estas sentencias: registerbgidriver( EGAVGA_driver ); initgraph( &gdriver, &gmodo, "" ); */ /* Si no, entonces has de "decir" dónde se encuentra el dispositivo gráfico */ initgraph( &gdriver, &gmodo, "C:\\BC5\\BGI" ); 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(); return 0; }