CAPITULO 12: DIBUJADO Los mecanismos de pintado de Java ...
CAPITULO 12: DIBUJADO Los mecanismos de pintado de Java ...
CAPITULO 12: DIBUJADO Los mecanismos de pintado de Java ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
La mayoría <strong>de</strong> los programadores realizan operaciones <strong>de</strong> selección <strong>de</strong> colores, dibujado<br />
y rellenado en<br />
los contextos gráficos. Una operación menos frecuente es el recortado. Recortar es<br />
simplemente<br />
restringir la región que un contexto gráfico pue<strong>de</strong> modificar.<br />
Todas las instancias <strong>de</strong> la clase Graphics tienen una región <strong>de</strong> recortado. La cual pue<strong>de</strong><br />
ser todo un<br />
componente o una parte <strong>de</strong> este.<br />
Cuando usted llama uno <strong>de</strong> los métodos drawXXX() ó fillXXX() <strong>de</strong> la clase Graphics , sólo<br />
aquellos<br />
pixeles que están contenidos en la región <strong>de</strong> recortado <strong>de</strong>l contexto gráfico son<br />
modificados.<br />
Por omisión la región <strong>de</strong> recortado para un contexto gráfico es todo el componente.<br />
Existen métodos<br />
que recuperan y modifican una región <strong>de</strong> recortado.<br />
En un momento usted vera un ejemplo <strong>de</strong> recortado, pero previamente se <strong>de</strong>be tener en<br />
cuenta el<br />
siguiente código:<br />
1. public void paint( Graphics g ) {<br />
2. for ( int i = 10; i < 500; i += 20 )<br />
3. for ( int j = 10; j < 500; j += 20 )<br />
4. g.fillOval( i, j, 15, 15 );<br />
5. }<br />
FIGURA <strong>12</strong>.15<br />
Applet con región <strong>de</strong> recortado<br />
por omisión.<br />
Este método dibuja una secuencia <strong>de</strong> puntos. Tenga en cuenta que este es el método<br />
paint() <strong>de</strong> un<br />
applet que tiene 300 pixeles <strong>de</strong> ancho por 300 pixeles <strong>de</strong> alto. Debido a que el contador<br />
<strong>de</strong>l ciclo llega<br />
hasta 500, el método intenta dibujar fuera <strong>de</strong> los límites <strong>de</strong>l applet. Esto no es problema,<br />
porque el<br />
contexto gráfico por omisión tiene una región <strong>de</strong> recortado que coinci<strong>de</strong> con la <strong>de</strong>l<br />
applet.<br />
Para fijar una región <strong>de</strong> recorte rectangular, usted pue<strong>de</strong> llamar el método setClip( x , y,<br />
width, height) ,<br />
pasando como parámetros cuatro números enteros que <strong>de</strong>scriben la posición y tamaño<br />
<strong>de</strong> la región<br />
rectangular <strong>de</strong>seada. Por ejemplo el código anteriormente presentado se pue<strong>de</strong> modificar<br />
<strong>de</strong> la siguiente<br />
forma<br />
1. public void paint( Graphics g ) {<br />
2. g.setClip( 100, 100, 100, 100 );<br />
3. for ( int i = 10; i < 500; i += 20 )