sábado, 30 de enero de 2010

Ejercicio 12. 31-32

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import java.util.Random;
import javax.swing.JPanel;

public class Figuras2JPanel extends JPanel
{
// dibuja rutas generales
public void paintComponent( Graphics g )
{
super.paintComponent( g ); // llama al método paintComponent de la superclase
Random aleatorio = new Random(); // obtiene el generador de números aleatorios

int puntosX[] = { 55, 67, 109, 73, 83, 55, 27, 37, 1, 43 };
int puntosY[] = { 0, 36, 36, 54, 96, 72, 96, 54, 36, 36 };

Graphics2D g2d = ( Graphics2D ) g;
GeneralPath estrella = new GeneralPath(); // crea objeto GeneralPath

// establece la coordenada inicial de la ruta general
estrella.moveTo( puntosX[ 0 ], puntosY[ 0 ] );

// crea la estrella; esto no la dibuja
for ( int cuenta = 1; cuenta < puntosX.length; cuenta++ )
estrella.lineTo( puntosX[ cuenta ], puntosY[ cuenta ] );

estrella.closePath(); // cierra la figura

g2d.translate( 200, 200 ); // traslada el origen a (200, 200)

// gira alrededor del origen y dibuja estrellas en colores aleatorios
for ( int cuenta = 1; cuenta <= 20; cuenta++ )
{
g2d.rotate( Math.PI / 10.0 ); // gira el sistema de coordenadas

// establece el color de dibujo al azar
g2d.setColor( new Color( aleatorio.nextInt( 256 ),
aleatorio.nextInt( 256 ), aleatorio.nextInt( 256 ) ) );

g2d.fill( estrella ); // dibuja estrella rellena
} // fin de for
} // fin del método paintComponent
} // fin de la clase Figuras2JPanel

--------------------------------------------------------------------------------------------------
import java.awt.Color;
import javax.swing.JFrame;

public class Figuras2
{
// ejecuta la aplicación
public static void main( String args[] )
{
// crea marco para Figuras2JPanel
JFrame marco = new JFrame( "Dibujo de figuras en 2D" );
marco.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

Figuras2JPanel figuras2JPanel = new Figuras2JPanel();
marco.add( figuras2JPanel ); // agrega figuras2JPanel al marco
marco.setBackground( Color.WHITE ); // establece color de fondo del marco
marco.setSize( 400, 400 ); // establece el tamaño del marco
marco.setVisible( true ); // muestra el marco
} // fin de main
} // fin de la clase Figuras2

No hay comentarios: