PrecedenteAltri AppletSuccessivo



Figure di Lissajous - 1

Le figure di Lissajous si ottengono componendo fra loro due moti armonici con periodi distinti.
Questo applet si ottiene da simple 2 semplicemente modificando la definizione della curva P(t).

Questo browser non e' abilitato
a visualizzare applet

Istruzioni:

Facendo click&drag con il mouse sulla figura si possono modificare i periodi delle due oscillazioni.
In particolare:
Il movimento orizzontale modifica il periodo dell'oscillazione sull'asse X.
Il movimento verticale modifica il periodo dell'oscillazione sull'asse Y.


Il puntino blu serve per "invogliare" il "lettore" a intervenire con il mouse.


Codice sorgente: lissajous.java
import java.applet.Applet;
import java.awt.*;


public class lissajous extends Applet {
    int posx,posy;

    public void drawCurve(Graphics g) {
      double ang0=0, ang1=Math.PI*2*13; // estremi
      int i, n=1000;
      int w = size().width;             // dimensioni dell'applet
      int h = size().height;
      double k1 = 0.5*(double)posx/(double)w;
      double k2 = 0.5*(double)posy/(double)h;
     
      int x0=0,y0=0,x1=0,y1=0;
      for(i=0;i<n;i++)
          {
           double ang = ang0+(ang1-ang0)*i/(double)(n-1);
           x1 = (int)(w * (Math.sin(ang*k1)+1.0)*0.5);
           y1 = (int)(h * (Math.sin(ang*k2)+1.0)*0.5);
           if(i>0) g.drawLine(x0,y0,x1,y1);
           x0 = x1;
           y0 = y1;
          }
    }       
    public void paint(Graphics g) {
      g.setColor(Color.black);
      drawCurve(g);
      int lx=4,ly=4;
      g.setColor(Color.blue);
      g.fillOval(posx-lx/2,posy-ly/2,lx,ly);
      g.setColor(Color.black);
      g.drawOval(posx-lx/2,posy-ly/2,lx,ly);
    }
    public void init() { // lo sfondo e' bianco
      setBackground(Color.white);
    }
    public boolean mouseDown(Event evt, int x, int y) {
      posx=x;
      posy=y;
      repaint();
      return true;
    }
    public boolean mouseDrag(Event evt, int x, int y) {
      posx=x;
      posy=y;
      repaint();
      return true;
    }
}

  





PrecedenteAltri AppletSuccessivo


Gian Marco Todesco