Sono riuscito a creare la sinusoide che volevo con il seguente codice "indipendente":
(metto dei commenti per i vari passaggi)
mport java.awt.*;
import javax.swing.*;
class DrawSinEmo extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth ();
int height = getHeight ();
int c = height/2;
//inserisco la mia variabile (i), è in questo ordine di dimensione
//poi lo dovrò prendere in input dal programma
int i=8459;
int x;
//disegno l'asse
g.drawLine(0,c,width,c);
int p, y;
//conto i punti
for (p=0, x=0; x<width ;x+=10)
{p++;}
int ay[] = new int[p];
int ax[] = new int[p];
double r;
p=0;
//memorizzo i punti
for (x=0; x<width ;x+=10)
{
r = Math.sin (i/28.0* 2*Math.PI);
y = (int) (c-200 * r);
ay[p] = y;
ax[p] = x;
i++;
p++;
}
//disegno la sinusoide(che però drawPolygon mi chiude ma poco importa)
g.setColor(Color.red);
g.drawPolygon (ax, ay, p);
}
}
public class CreateWindow2
{
public static void main (String args[])
{
DrawSinEmo sin1= new DrawSinEmo();
DrawSinFis sin2= new DrawSinFis();
DrawSinEmo sin3= new DrawSinEmo();
JFrame application = new JFrame("BIO");
application.setDefaultCloseOperation(JFrame.EXIT_O N_CLOSE);
application.add(sin1);
application.add(sin2);
application.add(sin3);
application.setSize(600,480);
application.setVisible(true);
}
}
PROBLEMI:
- Io devo disegnare 3 sinusoidi (le altre due con 23 e 33 al posto di 28) e se lo faccio mi dà errori in runtime
- devo scrivere qualcosa nel grafico, altrimenti sarebbe inutile (come fare?)
- il precedente programma lo devo richiamare da un altro programma e non da se stesso (forse la cosa più semplice per me delle tre)