// // EspiralTest.java // Copyright (c) 1996, Agustin Froufe // Todos los derechos reservados. // // No se asume ninguna responsabilidad por el uso o alteracion de este // software. Este software se proporciona COMO ES, sin garantia de ningun // tipo de su funcionamiento y en ningun caso sera el autor responsable de // daños o perjuicios que se deriven del mal uso del software, aun cuando // este haya sido notificado de la posibilidad de dicho daño. // // Compilador: javac 1.0 // Autor: Agustin Froufe // Creacion: 31-Ago-1996 19:01:10 // //-------------------------------------------------------------------------- // Esta informacion no es necesariamente definitiva y esta sujeta a cambios // que pueden ser incorporados en cualquier momento, sin avisar. //-------------------------------------------------------------------------- import java.awt.*; import java.applet.Applet; // Clase de ejemplo para dibujar en contextos gráficos class Espiral { // Al ser privada, las variables son sólo accesibles por esta clase private int iniX,iniY,iniAncho,iniAlto; private int incremento; private Graphics cg; // constructor. crea una referencia local al buffer gráfico y define // el azul como color de los objetos que se dibujen sobre ella public Espiral( Graphics g ) { cg = g; cg.setColor( Color.blue ); } // Establece el tamaño y posición iniciales de la espiral public void setTamInicial( int x,int y,int w,int h ) { iniX = x; iniY = y; iniAncho = w; iniAlto = h; } // Establece el incremento para espaciar los giros public void setTamEspiral( int inc ) { incremento = inc; } // Construye la espiral public void creaEspiral() { int cX = iniX; int cY = iniY; // Dibuja líneas por pares, cubriéndose entre sí para formar la // espiral cuadrada hasta alcanzar el tamaño del incremento while( iniAncho > incremento && iniAlto > incremento ) { cg.drawLine( cX,cY,(cX+iniAncho),cY ); cg.drawLine( (cX+iniAncho),cY,(cX+iniAncho),(cY+iniAlto) ); cX += iniAncho; cY += iniAlto; iniAncho -= incremento; iniAlto -= incremento; cg.drawLine( cX,cY,(cX-iniAncho),cY ); cg.drawLine( (cX-iniAncho),cY,(cX-iniAncho),(cY-iniAlto) ); cX -= iniAncho; cY -= iniAlto; iniAncho -= incremento; iniAlto -= incremento; } } } // Esta es la llamada a la clase desde un Applet Html public class EspiralTest extends Applet { Image buffer; Espiral spiral; boolean cargado = false; synchronized public void init() { // crea un buffer donde dibujar buffer = createImage( 300,300 ); // crea una nueva espiral spiral = new Espiral( buffer.getGraphics() ); // establece el punto inicial y dimensiones spiral.setTamInicial( 10,10,200,200 ); // establece el incremento spiral.setTamEspiral( 10 ); // construye la espiral spiral.creaEspiral(); } synchronized public void paint( Graphics g ) { g.drawImage( buffer,25,25,this ); } } //-------------------------------------- Final del fichero espiralTest.java