Giovedi' 17 Ottobre 2002 : 13 48 3 - Anonimo da piclab09.ba.infn.it 192.135.20.9
import java.applet.*;
import java.awt.*;
import java.awt.event.*;


public class bivisione extends Applet implements AdjustmentListener

{

int y,value;
double y1,y2,x,x1,rad;

Label l;
Scrollbar ogg;

public void init() {

rad = Math.PI/180.;

l=new Label ("spostamento asse ottico");
add(l);
l.setBounds(430,10,90,20);

//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;

ogg=new Scrollbar(Scrollbar.HORIZONTAL,(int)(x),5,0,250);
ogg.addAdjustmentListener(this);
add(ogg);
ogg.setBounds(540,10,100,20);

}

public void adjustmentValueChanged(AdjustmentEvent ev) {

value=(ogg.getValue());

//valori variabili.
//x=value;
//y1=-130/435*x-(250*(-130/435)+250);x1=x*x;x1+710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;

repaint();

}

public void paint(Graphics g) {

//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(theta+Math.PI/180.,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(theta+Math.PI/180.,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
g.fillOval(650,350,20,60);
g.setColor(new Color(0,0,0));
g.fillOval(650,360,10,40);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,260));
g.drawLine(250,250,770,(int)(y1));
g.setColor(new Color(185,0,260));
g.drawLine(250,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(260,0,185));
g.fillOval(250,246,8,8);

//punti immagine.
g.setColor(new Color(260,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(260,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,264));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,264));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}
Giovedi' 17 Ottobre 2002 : 14 1 4 - zito da pcba10.ba.infn.it 192.135.10.180

import java.applet.*;
import java.awt.*;
import java.awt.event.*;


public class bivisione extends Applet

{

int y,value;
double y1,y2,x,x1,rad;


public void init() {

rad = Math.PI/180.;


//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;


}


public void paint(Graphics g) {

//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(theta+Math.PI/180.,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(theta+Math.PI/180.,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
g.fillOval(650,350,20,60);
g.setColor(new Color(0,0,0));
g.fillOval(650,360,10,40);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y1));
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(255,0,185));
g.fillOval(250,246,8,8);

//punti immagine.
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,255));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,255));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}

Giovedi' 17 Ottobre 2002 : 14 33 1 - Anonimo da labmul15.fisica.uniba.it 193.204.188.74
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class bivisione extends JApplet

{
Display disegno;
int y,value;
double y1,y2,x,x1,rad;


public void init() {
disegno= new Display();
setContentPane(disegno);
rad = Math.PI/180.;


//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;


}

class Display extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);
//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(theta+Math.PI/180.,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(theta+Math.PI/180.,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
g.fillOval(650,350,20,60);
g.setColor(new Color(0,0,0));
g.fillOval(650,360,10,40);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y1));
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(255,0,185));
g.fillOval(250,246,8,8);

//punti immagine.
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,255));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,255));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}
}

Giovedi' 17 Ottobre 2002 : 14 56 2 - Anonimo da labmul4.fisica.uniba.it 193.204.188.61
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class bivisione extends JApplet
implements MouseMotionListener

{
Display disegno;
int y,value;
double y1,y2,x,x1,rad;

int mousex,mousey;
double angolo1,angolo2;
public void init() {
disegno = new Display();
disegno.addMouseMotionListener(this);
setContentPane(disegno);

rad = Math.PI/180.;


//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;

}
public void mouseMoved(MouseEvent e){
mousex = e.getX();
mousey = e.getY();
angolo1=Math.atan(mousey/mousex);
angolo2=Math.atan(mousey/mousex);

disegno.repaint(); }
public void mouseDragged(MouseEvent e){
}

class Display extends JPanel {
public void paintComponent(Graphics g) {
disegno.setBackground(Color.pink);
super.paintComponent(g);
//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(angolo1,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(angolo1,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
disegnoruotato(angolo2,660,380,710,380,10,30,g);
/*g.fillOval(650,350,20,60);*/
g.setColor(new Color(0,0,0));
disegnoruotato(angolo2,655,380,710,380,5,20,g);
//g.fillOval(650,360,10,40);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y1));
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(255,0,185));
g.fillOval(250,246,8,8);

//punti immagine.
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,255));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,255));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}
}
Giovedi' 17 Ottobre 2002 : 15 6 1 - ciao da labmul13.fisica.uniba.it 193.204.188.71
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class bivisione extends JApplet implements MouseMotionListener{
Display disegno;
int y,value;
int mousex, mousey;
double y1,y2,x,x1,rad,angolo1,angolo2;

public void init() {
disegno = new Display();
disegno.addMouseMotionListener(this);
setContentPane(disegno);

rad = Math.PI/180.;


//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;


}
public void mouseMoved(MouseEvent e){
mousex = e.getX();
mousey = e.getY();
if (mousey < disegno.getSize().height/2){
angolo1 = Math.atan(mousex/mousey);
angolo2 = Math.atan(mousex/mousey);}
else {
angolo1 = Math.atan(mousex/-mousey);
angolo2 = Math.atan(mousex/-mousey);}

disegno.repaint();
}
public void mouseDragged(MouseEvent e){
}

class Display extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(angolo1,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(angolo1,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
disegnoruotato(angolo2,660,380,710,380,10,30,g);
//g.fillOval(650,350,20,60);
g.setColor(new Color(0,0,0));
//g.fillOval(650,360,10,40);
disegnoruotato(angolo2,655,380,710,380,5,20,g);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y1));
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(255,0,185));
g.fillOval(250,246,8,8);

//punti immagine.
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,255));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,255));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}
}

Giovedi' 17 Ottobre 2002 : 15 19 1 - zito da 193.204.188.254

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class bivisione extends JApplet
implements MouseMotionListener

{

Display disegno;
int mousex,mousey;
double angolo1,angolo2;
int y,value;
double y1,y2,x,x1,rad;
JPanel p1;
JSlider s1;

public void init() {

disegno = new Display();
disegno.addMouseMotionListener(this);
p1 = new JPanel();
getContentPane().setLayout(new BorderLayout());
getContentPane().add(p1,BorderLayout.NORTH);
getContentPane().add(disegno,BorderLayout.CENTER);
s1 = new JSlider(0,500,100);
p1.add(s1);
rad = Math.PI/180.;


//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;


}
public void mouseMoved(MouseEvent e){

}
public void mouseDragged(MouseEvent e){
mousex = e.getX();
mousey = e.getY();
if(mousey < (int)(disegno.getSize().height/2.)){
angolo1 = Math.atan(mousex/mousey);
angolo2 = Math.atan(mousex/mousey);
} else {
angolo1 = Math.atan(mousex/-mousey);
angolo2 = Math.atan(mousex/-mousey);
}

disegno.repaint();
}

class Display extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);

//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(angolo1,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(angolo1,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
disegnoruotato(angolo2,660,380,710,380,10,30,g);
//g.fillOval(650,350,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(angolo2,655,380,710,380,5,20,g);
//g.fillOval(650,360,10,40);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y1));
g.setColor(new Color(185,0,255));
g.drawLine(250,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(255,0,185));
g.fillOval(250,246,8,8);

//punti immagine.
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,255));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,255));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}}


Giovedi' 17 Ottobre 2002 : 15 36 1 - zito da 193.204.188.254

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;


public class bivisione extends JApplet
implements MouseMotionListener,ChangeListener

{

Display disegno;
int mousex,mousey;
double angolo1,angolo2;
int y,value;
double y1,y2,x,x1,rad;
JPanel p1;
JSlider s1;
int xp;

public void init() {

disegno = new Display();
disegno.addMouseMotionListener(this);
p1 = new JPanel();
xp = 250;
getContentPane().setLayout(new BorderLayout());
getContentPane().add(p1,BorderLayout.NORTH);
getContentPane().add(disegno,BorderLayout.CENTER);
s1 = new JSlider(0,500,xp);
s1.addChangeListener(this);
p1.add(s1);
rad = Math.PI/180.;


//valori iniziali.
y=130; y1=250-(250-120)*(770-250)/(685-250);y2=250+(250-120)*(770-250)/(685-250);
//y1=-130/435*x-(250*(-130/435)+250);x*x-710/2*x=-y1*y1+120/2*y1-(60*60+710*710+120*120)+60;


}
public void stateChanged(ChangeEvent e){
xp = s1.getValue(); disegno.repaint();}

public void mouseMoved(MouseEvent e){

}
public void mouseDragged(MouseEvent e){
mousex = e.getX();
mousey = e.getY();
if(mousey < (int)(disegno.getSize().height/2.)){
angolo1 = Math.atan(mousex/mousey);
angolo2 = Math.atan(mousex/mousey);
} else {
angolo1 = Math.atan(mousex/-mousey);
angolo2 = Math.atan(mousex/-mousey);
}

disegno.repaint();
}

class Display extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);

//occhio 1.
g.setColor(new Color(252,244,190));
g.fillOval(650,60,120,120); //710 e 120 sono le coordinate del centro della circonferenza.
g.setColor(new Color(128,128,255));
double theta=-Math.atan(130./435.);//theta=Math.PI/4;
disegnoruotato(angolo1,660-2,120+2,710,120,10,30,g);
//g.fillOval(650,90,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(angolo1,655-2,120+2,710,120,5,20,g); //centro ovale piccolo,centro cerchio grande,raggi ovale piccolo
//g.fillOval(650,100,10,40);
g.setColor(new Color(128,128,255));

//occhio 2.
g.setColor(new Color(252,244,190));
g.fillOval(650,320,120,120);
g.setColor(new Color(128,128,255));
disegnoruotato(angolo2,660,380,710,380,10,30,g);
//g.fillOval(650,350,20,60);
g.setColor(new Color(0,0,0));
disegnoruotato(angolo2,655,380,710,380,5,20,g);
//g.fillOval(650,360,10,40);

//asse oggetto.
g.setColor(new Color(0,0,0));
g.drawLine(0,250,850,250);

//assi ottici.
g.setColor(new Color(0,164,164));
g.drawLine(0,120,850,120);
g.setColor(new Color(0,164,164));
g.drawLine(0,380,850,380);

//RAGGI.
g.setColor(new Color(185,0,255));
g.drawLine(xp,250,770,(int)(y1));
g.setColor(new Color(185,0,255));
g.drawLine(xp,250,770,(int)(y2));

//punto oggetto.
g.setColor(new Color(255,0,185));
g.fillOval(xp,246,8,8);

//punti immagine.
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y1-2),4,4);
g.setColor(new Color(255,0,185));
g.fillOval(768,(int)(y2-2),4,4);

//punti nodali.
g.setColor(new Color(0,215,255));
g.fillOval(683,118,4,4);
g.setColor(new Color(0,215,255));
g.fillOval(683,378,4,4);

//Nota:la differenza tra fill e draw che uno disegna una linea l'altro riempie.

}

void disegnoruotato(double angolo,int c1,int c2,int c3,int c4,int r1,int r2,Graphics g){
int a[]=new int[360];
int b[]=new int[360];
int p,q;
for(int i=0; i<360;i++){a[i]=(int)(r1*Math.sin(i*rad))+c1;b[i]=(int)(r2*Math.cos(i*rad))+c2;
a[i]=a[i]-c3;b[i]=b[i]-c4;
p=a[i];q=b[i]; //dist=Math.sqrt((a[i]-710)*(a[i]-710)+(b[i]-120)*(b[i]-120))(distanza)
a[i]=(int)(p*Math.cos(angolo)-q*Math.sin(angolo));
b[i]=(int)(p*Math.sin(angolo)+q*Math.cos(angolo));
a[i]=a[i]+c3;
b[i]=b[i]+c4;
}
g.fillPolygon(a,b,360);
}
}}



Giovedi' 17 Ottobre 2002 : 15 44 4 - Serena e Bruno da labmul3.fisica.uniba.it 193.204.188.60


Arrivederci!


Giovedi' 17 Ottobre 2002 : 15 46 4 - Serena e Bruno da labmul3.fisica.uniba.it 193.204.188.60

bugia
non ci rivedremo mai pi, succeder qualcosa di terribile prima che il giorno volga al termine e le ombre ci avvolgano nel loro tenebroso amplesso.
Giovedi' 17 Ottobre 2002 : 15 47 4 - Serena e Bruno da labmul3.fisica.uniba.it 193.204.188.60

comunque c' un GIUDA tra di noi

se ci sei non lo fai
Giovedi' 17 Ottobre 2002 : 15 48 1 - Anonimo da labmul3.fisica.uniba.it 193.204.188.60

Basta
Giovedi' 17 Ottobre 2002 : 15 50 - Anonimo da labmul3.fisica.uniba.it 193.204.188.60

No comment