Esercizi della quarta lezione del corso su Java2

  1. Aggiungete ai programmi di animazione di cerchi della lezione precedente dei tasti di start e stop dell'animazione.
  2. Modificate l'applet 16 in modo da creare un tasto che fa apparire il frame quando viene pigiato.Inoltre aggiungete al frame un menu' "File" con una selezione di "Quit" che dovrebbe distruggere il frame non appena viene selezionata.
  3. Modificate l'esercizio 6 della lezione 3 in modo da partire con una finestra vuota. Quindi l'utente,usando il mouse, puo' introdurre dei nuovi oggetti palla a piacimento, facendoli cadere dalla posizione dove viene cliccato il mouse. Inserite un tasto Azzera per poter ripartire dall'applet vuoto.
  4. Le figure di Lissajous sono prodotte disegnando dei punti la cui coordinata varia nel tempo con la formula
    x(t) = a1*sin(b1*t+c1)
    y(t) = a2*sin(b2*t+c2)
    
    Scrivete un applet che disegna le figure permettendo di variare con una barra di scorrimento le 6 quantita'.
  5. Modificate l'applet 10 della lezione 2 in modo che invece di disegnare l'insieme di Julia disegna l'insieme di Mandelbrot(questo richiede la modifica di 2 o 3 istruzioni). Una volta ottenuto il caratteristico disegno dell'insieme di Mandelbrot, aggiungetegli un'interfaccia grafica che permetta di zoomare in una zona qualsiasi dell'insieme. Quest'interfaccia dovrebbe essere basata sulla possibilita' di usare il mouse per selezionare un rettangolo e dovrebbe avere la possibilita' di tornare alla figura iniziale. Qui trovate il programma sorgente dell'applet 10.
  6. Il seguente codice:
              delta = 0.01
              x =1
              y = 1
              z = 1
              a = 10
              b = 28
              c = 8./3.
              do n = 1, 10000
                 dx = a*(y-x)
                 dy = x * (b-z) - y
                 dz = x*y - c*z
                 x = x + delta*dx
                 y = y +delta*dy
                 z = z + delta *dz
               END DO
    
    genera 10000 punti di una figura geometrica nello spazio chiamata attrattore di Lorentz che assomiglia vagamente a una farfalla. Scrivete un applet che disegna questa figura rappresentandola in prospettiva. Una rappresentazione prospettica si basa su 2 costanti theta e phi e consiste nel convertire i punti nello spazio a 3 coordinate in punti nel piano a 2 coordinate.Il codice che segue puo' essere usato direttamente in un programma Java per convertire un vettore di n punti .
    void tr3d(double x[],double y[], double z[],int xp[],int yp[],int n){
       double theta = 80,phi=130;
       int nxc=300,nyc=300;
       double rad = Math.PI/180.;
       double scale=1.;
       double t =theta*rad;
       double p=phi*rad;
       double ct =Math.cos(t);
       double st =Math.sin(t);
       double cp =Math.cos(p);
       double sp =Math.sin(p);
       double a,b,c;
       for (int i=0;i < n;i++){
          a=x[i]*scale;                                                   
          b=y[i]*scale;                                                   
          c=z[i]*scale;                                                   
           xp[i] =(int)(a*sp-b*cp)+nxc;
           yp[i]=nyc -(int)(ct*(a*cp+b*sp)+c*st);
           }
             
        }
    
    Una volta ottenuta la rappresentazione prospettica, aggiungete un'interfaccia grafica che permette di variare theta e phi con una barra di scorrimento e quindi di vedere la farfalla da diversi punti di vista.