1 /*
2 * @autor:ejercicio 12.23 del libro de deitel(como programar en java, ed.5)
3 * lo unico que hize fue modificarlo para la clase canvas, pero esta muy chevere
4 * att:Camilo Mauricio Soto
5 */
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 public void paint (Graphics g){
17
18 int puntosX[]={55,67,109,73,83,55,27,37,1,43};
19 int puntosY[]={0,36,36,54,96,72,96,72,96,54,36,36};
20 //esto lo cambia a graficos de dos dimensiones
21 Graphics2D g2d =(Graphics2D)g;
22 //se crea el objeto de la estrella
23 GeneralPath estrella = new GeneralPath();
24 //se establece la coordenada inicial de la ruta generqal
25 estrella.moveTo(puntosX[0],puntosY[0]);
26 //crear la estrella
27 for (int cuenta=1 ; cuenta< puntosX.length; cuenta++)
28 estrella.lineTo(puntosX[cuenta],puntosY[cuenta]);
29 estrella.closePath();
30 g2d.translate(200,200);
31 //este ciclo es para que gire alrededor del origen y dibuje estrellas
32 // en colores aleatorios
33 for (int cuenta=1 ; cuenta<= 20; cuenta++){
34 g2d.rotate(Math.PI/10.0);
35 g2d.setColor(new Color((int)(Math.random()*256),
36 (int)(Math.random()*256),
37 (int)(Math.random()*256)));
38
39 g2d.fill(estrella);
40 }
41 }
42 }
43
44 public class Estrellas {
45 public static void main(String[] args) {
46 JFrame marco = new JFrame("Estrellas");
47 Lienzo lienzo= new Lienzo();
48
49 marco.add(lienzo);
50 marco.setSize(700,700);
51 marco.setVisible(true);
52 }
53
54 }
