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;
}