1
2 /*
3 *@autor:ejercicio 12.23 del libro como (promagramar en java de deitel 5. ed)
4 * este si que esta chevere lo modifique para que hiciera una animacion con
5 *las estrellas. @modificado por:Camilo Mauricio Soto.
6 */
7 import java.awt.*;
8 import java.awt.geom.GeneralPath;
9
10 import javax.swing.*;
11 class Lienzo extends Canvas {
12 public Lienzo(){
13 setBackground(Color.white);
14
15 }
16
17 public void paint (Graphics g){
18
19 int puntosX[]={55,67,109,73,83,55,27,37,1,43};
20 int puntosY[]={0,36,36,54,96,72,96,72,96,54,36,36};
21 //esto lo cambia a graphicos de dos dimensiones
22 Graphics2D g2d =(Graphics2D)g;
23 //se crea el obheto de la estrella
24 GeneralPath estrella = new GeneralPath();
25 //se establece la coordenada inicialde la ruta generqal
26 estrella.moveTo(puntosX[0],puntosY[0]);
27 //crear la estrella
28 for (int cuenta=1 ; cuenta< puntosX.length; cuenta++)
29 estrella.lineTo(puntosX[cuenta],puntosY[cuenta]);
30 estrella.closePath();
31 g2d.translate(200,200);
32 //este ciclo es para que gire alrededor del origen y dibuje
33 //estrellas en colores aleatorios(y de paso que de como animacion)
34 for (int cuenta=1 ; cuenta<= 20; cuenta++){
35 g2d.rotate(Math.PI/10.0);
36 g2d.setColor(new Color((int)(Math.random()*256),
37 (int)(Math.random()*256),
38 (int)(Math.random()*256)));
39
40 g2d.fill(estrella);
41 try {
42 Thread.sleep(100);
43 }
44 catch(Exception e){
45 }
46 g2d.rotate(Math.PI/10.0);
47 g2d.setColor(new Color((int)(Math.random()*256),
48 (int)(Math.random()*256),
49 (int)(Math.random()*256)));
50
51 g2d.fill(estrella);
52
53 }
54 }
55 }
56
57 public class Estrellas {
58 public static void main(String[] args) {
59 JFrame marco = new JFrame("Estrellas");
60 Lienzo lienzo= new Lienzo();
61
62 marco.add(lienzo);
63 marco.setSize(700,700);
64 marco.setVisible(true);
65 }
66
67 }
