20.01.2015 Views

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 ...

SHOW MORE
SHOW LESS

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 )

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!