PrecedenteAltri AppletSuccessivo



Disegno di una curva parametrica - 4

È come l'esempio simple 2, ma vengono disegnate 8 curve con colori differenti e valori leggermente diversi per il parametro pr1.
Il risultato è graficamente accattivante.

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 il valore di r1 nella curva rossa



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

public class simple4 extends Applet 
  implements MouseListener, MouseMotionListener {

      double r0 = 100.0;
      double r1 = 40.0;

    public void paint(Graphics g) {
      int n = 200;
      int x0=0,y0=0,x1,y1;
      for(int j=0;j<8;j++)
        {
         double r1j = r1 + j*4; 
         g.setColor(new Color(255-j*20,j*30,0));
         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) + r1j*Math.cos(theta);
            double y = r0*Math.sin(rho) + r1j*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() {
      setBackground(Color.black);
      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