PrecedenteAltri AppletSuccessivo



Disegno di una curva parametrica - 2

Una versione appena leggermente più complicata dell'esempio precedente aggiunge la dimensione dell'interattività: Muovendo il mouse è possibile variare in maniera continua i parametri della curva P(t;r0,r1).

Questo browser non e' abilitato
a visualizzare applet

Istruzioni:

Facendo click&drag con il mouse sulla figura si possono modificare i parametri.

In particolare:
Movimento orizzontale per modificare r0
Movimento verticale per modificare r1


Codice sorgente: simple2.java
import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;

public class simple2 extends Applet 
  implements MouseListener, MouseMotionListener {

      double r0 = 100.0;
      double r1 = 40.0;

    public void paint(Graphics g) {
      int n = 400;
      int x0=0,y0=0,x1,y1;
      for(int i=0;i <=n;i++)
          {
           double rho   = 2*Math.PI*i/n;
           double theta = 16*Math.PI*i/n;
           double x = r0*Math.cos(rho) + r1*Math.cos(theta);
           double y = r0*Math.sin(rho) + r1*Math.sin(theta);
           // cambio sistema di riferimento
           x1 = getSize().width/2+(int)x; 
           y1 = getSize().height/2+(int)y;
           // disegno
           if(i>0) g.drawLine(x0,y0,x1,y1);
           x0 = x1;
           y0 = y1;
          }
    }

    public void init() {
      addMouseListener(this);
      addMouseMotionListener(this);
    }

    public void mouseClicked(MouseEvent e) {}
    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mouseMoved(MouseEvent e) {}

    public void mouseDragged(MouseEvent e) {
      int x = e.getX(), y = e.getY();
      r0 = x-getSize().width/2;
      r1 = y-getSize().height/2;

      repaint();
      e.consume();
   }
}

  





PrecedenteAltri AppletSuccessivo


Gian Marco Todesco