graphics.h


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