Advertisement
Guest User

pract1

a guest
Feb 22nd, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | None | 0 0
  1. package pract1;
  2.  
  3. // Importa la clase Graph2D (en el paquete graph2D).
  4. import graph2D.Graph2D;
  5. // Importa la clase Color (en el paquete java.awt) para poder
  6. // cambiar los colores de los elementos que se representen.
  7. import java.awt.Color;
  8. import java.awt.Font;
  9.  
  10. /**
  11.  * Dibujo de figuras "Recursive Square".
  12.  * De "Introduction to Programming in Java",
  13.  * Sedgewick & Wayne, Princeton.
  14.  * @author (IIP-PRG-DSIC-ETSINF. pmarques)
  15.  * @version (Curso 2017-18)
  16.  */
  17. public class RSquare {
  18.    
  19.     /** No hay objetos de esta clase. */
  20.     private RSquare() { }
  21.    
  22.     /** Dibuja en la ventana gd un cuadrado solido de color gris y enmarcado
  23.      *  en azul, con centro en (cX, cY) y lado l.
  24.      */
  25.     public static void drawCentSquare(Graph2D gd,
  26.                                       double cX, double cY, double l) {
  27.         delay();                                          
  28.         // Calculo de la esquina superior izquierda (luX, luY) del cuadrado
  29.         // a partir de su centro (cX, cY) y del lado l:
  30.         double luX = cX - l/2;// COMPLETAR
  31.         double luY = cY + l/2;// COMPLETAR
  32.        
  33.         // Dibujo de un rectangulo solido de color gris, de lados l x l,  
  34.         // y cuya esquina superior izquierda se encuentra en (luX, luY):
  35.         gd.fillRect(luX, luY, l, l, Color.LIGHT_GRAY, 2);
  36.         // Dibujo de un rectangulo de color azul, de lados l x l,
  37.         // y cuya esquina superior izquierda se encuentra en (luX, luY):
  38.         gd.drawRect(luX, luY, l, l, Color.BLUE, 2);
  39.     }
  40.    
  41.     /** Suspende temporalmente la ejecucion durante 50 ms. */
  42.     private static void delay() {
  43.         try { Thread.sleep(50); } catch (Exception e) { ; }
  44.     }
  45.    
  46.     /** Dibuja en la ventana gd una RSquare-A de orden n >= 1,
  47.      *  con centro en (cX, cY) y cuadrado central de lado l.
  48.      */
  49.     public static void rSquareA(Graph2D gd, int n,
  50.                                 double cX, double cY, double l) {
  51.         // COMPLETAR
  52.         if(n == 1){
  53.             drawCentSquare(gd,cX,cY,l);
  54.         } else {
  55.             rSquareA(gd, n-1, cX-l/2.0, cY-l/2.0, l/2.0);
  56.             rSquareA(gd, n-1, cX+l/2.0, cY-l/2.0, l/2.0);
  57.             rSquareA(gd, n-1, cX-l/2.0, cY+l/2.0, l/2.0);
  58.             rSquareA(gd, n-1, cX+l/2.0, cY+l/2.0, l/2.0);
  59.             drawCentSquare(gd,cX,cY,l);
  60.         }
  61.     }
  62.    
  63.     /** Dibuja una RSquare-A de orden n >= 1,
  64.      *  longitud 1 y centrada en (0, 0).
  65.      */
  66.     public static void rSquareA(int n) {
  67.         // COMPLETAR
  68.         Graph2D gd = new Graph2D();
  69.         rSquareA(gd,n,0,0,1);
  70.     }
  71.    
  72.     /** Dibuja en la ventana gd una RSquare-B de orden n >= 1,
  73.      *  con centro en (cX, cY) y cuadrado central de lado l.
  74.      */
  75.     public static void rSquareB(Graph2D gd, int n,
  76.                                 double cX, double cY, double l) {
  77.         // COMPLETAR
  78.         if(n == 1){
  79.             drawCentSquare(gd,cX,cY,l);
  80.         } else {
  81.             drawCentSquare(gd,cX,cY,l);
  82.             rSquareB(gd, n-1, cX-l/2.0, cY-l/2.0, l/2.0);
  83.             rSquareB(gd, n-1, cX+l/2.0, cY-l/2.0, l/2.0);
  84.             rSquareB(gd, n-1, cX-l/2.0, cY+l/2.0, l/2.0);
  85.             rSquareB(gd, n-1, cX+l/2.0, cY+l/2.0, l/2.0);
  86.         }
  87.     }    
  88.    
  89.     /** Dibuja una RSquare-B de orden n >= 1,
  90.      *  longitud 1 y centrada en (0, 0).
  91.      */
  92.     public static void rSquareB(int n) {
  93.         // COMPLETAR  
  94.         Graph2D gd = new Graph2D();
  95.         rSquareB(gd,n,0,0,1);
  96.     }    
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement