Contenuto della lavagna elettronica
Giovedi' 28 Giugno 2001 : 10 7 1 - Anonimo da pcba10.ba.infn.it 192.135.10.180
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Colori extends Applet implements ActionListener{
Color c [];
double Left,Right,Top,Bottom;
double c1,c2;
Button tasto;
Panel p1;
public void init(){
Left=-2.;Right=2.;Top=1.5;Bottom=-1.5;
c1=0.1654104;c2=-0.6369678;
c = new Color[500];
double a, b;
for (int xyz=0; xyz<4; xyz++){
a=Math.random();
b=100*Math.random();
for(int i=xyz*125;i<(xyz+1)*125;i++){
c[i]=Color.getHSBColor((float)(1.0F*(b*(Math.log(a*(i-125*xyz))))/500),1.0F,1.0F);
}
}
//for(int i=0;i<500;i++){
// c[i]=Color.getHSBColor((float)(1F*(Math.random()*100*i*i/3)/500),1.0F,1.0F);
// }
tasto = new Button("Nuovo disegno");
p1 = new Panel();
setLayout(new BorderLayout());
add(p1,BorderLayout.SOUTH);
p1.add(tasto);
tasto.addActionListener(this);
}
public void actionPerformed(ActionEvent ev){
c1 = Math.random()*4-2.;
c2 = Math.random()*3-1.5;
repaint();
}
public void paint(Graphics g){
double x,y,x1,y1;
int ic;
for (int i1=0; i1<500; i1++){
g.setColor(c[i1]);
g.fillRect(i1, 0, 1, 50);
}
for(int i=0;i<200;i++){
for(int j=0;j<200;j++){
x = Left +i*((Right-Left)/200);
y = Bottom + j*((Top-Bottom)/200);
for(ic=0;ic x1 = x*x - y*y +c1;
y1 = 2*x*y +c2;
if((x1*x1+y1*y1)>4.)break;
x=x1;y=y1;
}
if(ic ==c.length)g.setColor(Color.black);
else g.setColor(c[ic]);
g.fillRect(i,j+100,1,1);
}
}
}
}
Giovedi' 28 Giugno 2001 : 13 10 1 - zito da 193.204.188.60
Se volete trasformare un applet in applicazione quale metodo
va aggiunto?
Giovedi' 28 Giugno 2001 : 13 10 2 - LFG da labmul2.fisica.uniba.it 193.204.188.59
main
Giovedi' 28 Giugno 2001 : 13 12 3 - va da labmul15.fisica.uniba.it 193.204.188.74
java.applet
Giovedi' 28 Giugno 2001 : 13 13 1 - gianni da labmul11.fisica.uniba.it 193.204.188.68
il metodo main
Giovedi' 28 Giugno 2001 : 13 13 2 - cosko da labmul10.fisica.uniba.it 193.204.188.67
public static void main(){
}
Giovedi' 28 Giugno 2001 : 13 14 3 - ar da labmul14.fisica.uniba.it 193.204.188.72
public static void main()
Giovedi' 28 Giugno 2001 : 13 14 4 - noi da labmul13.fisica.uniba.it 193.204.188.71
public static void main
Giovedi' 28 Giugno 2001 : 13 14 5 - donvito da labmul9.fisica.uniba.it 193.204.188.66
public static void main(){
}
Giovedi' 28 Giugno 2001 : 13 15 1 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
Gli argomenti all'applicazione possono essere
specificati con il tag PARAM, che va all'interno del tag APPLET
Giovedi' 28 Giugno 2001 : 13 15 5 - l&p da labmul4.fisica.uniba.it 193.204.188.61
main
Giovedi' 28 Giugno 2001 : 13 16 1 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
Giovedi' 28 Giugno 2001 : 13 16 2 - xxz da labmul7.fisica.uniba.it 193.204.188.64
public static void main{
}
Giovedi' 28 Giugno 2001 : 13 17 5 - zito da 193.204.188.60
Cosa significa l'istruzione
super();
Giovedi' 28 Giugno 2001 : 13 18 2 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
richiama il costruttore
Giovedi' 28 Giugno 2001 : 13 18 4 - LFG da labmul2.fisica.uniba.it 193.204.188.59
che facciamo riferimento alla superclasse
Giovedi' 28 Giugno 2001 : 13 18 5 - donvito da labmul9.fisica.uniba.it 193.204.188.66
richiama il costruttore dell'oggeto genitore di quello in cui ci troviamo
Giovedi' 28 Giugno 2001 : 13 18 5 - Anonimo da labmul8.fisica.uniba.it 193.204.188.65
Simile a this(), però richiama il Genitore.
Giovedi' 28 Giugno 2001 : 13 18 5 - l&p da labmul4.fisica.uniba.it 193.204.188.61
si riferisce al genitore dell'oggetto nel quale ci troviamo
Giovedi' 28 Giugno 2001 : 13 18 5 - gianni&domenico da labmul11.fisica.uniba.it 193.204.188.68
serve a richiamare il costruttore del genitore dell'oggetto in cui mi trovo
Giovedi' 28 Giugno 2001 : 13 19 - cosko da labmul10.fisica.uniba.it 193.204.188.67
è il costruttore del genitore dell'oggetto.
Giovedi' 28 Giugno 2001 : 13 19 - noi da labmul13.fisica.uniba.it 193.204.188.71
richiama il costruttore del genitore dell'oggetto in cui ci troviamo
Giovedi' 28 Giugno 2001 : 13 19 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
richiama il costruttore dell'oggetto del genitore dell'oggetto dove ci troviamo
Giovedi' 28 Giugno 2001 : 13 19 1 - va da labmul15.fisica.uniba.it 193.204.188.74
si riferisce al genitore nel quale mi trovo (è simile a this)
Giovedi' 28 Giugno 2001 : 13 19 3 - ar da labmul14.fisica.uniba.it 193.204.188.72
si riferisce al genitore dell' oggetto nel quale ci troviamo
Giovedi' 28 Giugno 2001 : 13 19 4 - antonella da labmul6.fisica.uniba.it 193.204.188.63
richiama il genitore dell'oggetto in cui ci si trova
Giovedi' 28 Giugno 2001 : 13 20 3 - LFG da labmul2.fisica.uniba.it 193.204.188.59
che facciamo riferimento al genitore dell'oggetto in cui ci troviamo
Giovedi' 28 Giugno 2001 : 13 21 2 - ar da labmul14.fisica.uniba.it 193.204.188.72
richiama il costruttore del genitore dell' oggetto nel quale ci troviamo
Giovedi' 28 Giugno 2001 : 13 21 2 - va da labmul15.fisica.uniba.it 193.204.188.74
richiama il costruttore dell'oggetto del genitore dell'oggetto nel quale mi trovo
Giovedi' 28 Giugno 2001 : 13 22 - va da labmul15.fisica.uniba.it 193.204.188.74
richiama il costruttore dell'oggetto del genitore dell'oggetto nel quale mi trovo
Giovedi' 28 Giugno 2001 : 13 22 3 - Anonimo da labmul15.fisica.uniba.it 193.204.188.74
richiama il costruttore del genitore dell'oggetto nel quale mi trovo
Giovedi' 28 Giugno 2001 : 13 22 4 - xxz da labmul7.fisica.uniba.it 193.204.188.64
genitore del ogetto nel quale ci troviamo; costrutore
Giovedi' 28 Giugno 2001 : 13 24 2 - zito da 193.204.188.60
Cosa succede se scrivete:
Pippo a;
a = null;
Giovedi' 28 Giugno 2001 : 13 24 3 - gianni&domenico da labmul11.fisica.uniba.it 193.204.188.68
distruggiamo l'oggetto
Giovedi' 28 Giugno 2001 : 13 24 3 - cosko da labmul10.fisica.uniba.it 193.204.188.67
Distrugge l'oggetto.
Giovedi' 28 Giugno 2001 : 13 24 4 - LFG da labmul2.fisica.uniba.it 193.204.188.59
cancelliamo l'oggetto a
Giovedi' 28 Giugno 2001 : 13 24 5 - av da labmul15.fisica.uniba.it 193.204.188.74
cancella l'oggetto
Giovedi' 28 Giugno 2001 : 13 25 - l&p da labmul4.fisica.uniba.it 193.204.188.61
si distrugge l'oggetto
Giovedi' 28 Giugno 2001 : 13 25 - antonella da labmul6.fisica.uniba.it 193.204.188.63
si distrugge l'oggetto
Giovedi' 28 Giugno 2001 : 13 25 1 - donvito da labmul9.fisica.uniba.it 193.204.188.66
si dà il valore "null" all'oggeto "pippo"... quindi lo "distrugge"
Giovedi' 28 Giugno 2001 : 13 25 4 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
succede che il processo viene stoppato
Giovedi' 28 Giugno 2001 : 13 26 1 - xxz da labmul7.fisica.uniba.it 193.204.188.64
cancelliamo l'oggeto a
Giovedi' 28 Giugno 2001 : 13 26 2 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
ci si assicura che l'oggetto Pippo sia terminato
Giovedi' 28 Giugno 2001 : 13 26 2 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
ci si assicura che l'oggetto Pippo sia terminato
Giovedi' 28 Giugno 2001 : 13 26 3 - ar da labmul14.fisica.uniba.it 193.204.188.72
dichiariamo la variabile a della classe Pippo;
distuggiamo l' oggetto a
Giovedi' 28 Giugno 2001 : 13 29 - zito da 193.204.188.60
garbage collection
Giovedi' 28 Giugno 2001 : 13 29 5 - zito da 193.204.188.60
Come si definisce e a cosa serve il costruttore di un oggetto: ad es. Pippo?
Giovedi' 28 Giugno 2001 : 13 30 1 - cosko da labmul10.fisica.uniba.it 193.204.188.67
ad istanziarlo, cioè a crearlo.
Giovedi' 28 Giugno 2001 : 13 30 4 - noi da labmul13.fisica.uniba.it 193.204.188.71
il costruttore serve a creare l'oggetto
Giovedi' 28 Giugno 2001 : 13 31 1 - xxz da labmul7.fisica.uniba.it 193.204.188.64
il costruttore serve a instanziare l'oggeto
Giovedi' 28 Giugno 2001 : 13 31 1 - LFG da labmul2.fisica.uniba.it 193.204.188.59
a istanziare le variabili dell' oggetto
Giovedi' 28 Giugno 2001 : 13 31 5 - io da labmul5.fisica.uniba.it 193.204.188.62
E' un metodo lo stesso nome della class e serve a creare l'oggetto quando richiamato dopo il comando new
Giovedi' 28 Giugno 2001 : 13 32 - LFG da labmul2.fisica.uniba.it 193.204.188.59
a istanziare le variabili dell' oggetto
public Pippo{}
Giovedi' 28 Giugno 2001 : 13 32 1 - av da labmul15.fisica.uniba.it 193.204.188.74
il costruttore serve a creare l'oggetto
/ il costruttore*/....
Giovedi' 28 Giugno 2001 : 13 32 2 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
è un metodo speciale che si chiama per iniazializzare le variabili di un oggetto e si definisce con lo stesso nome della classe
Giovedi' 28 Giugno 2001 : 13 32 3 - donvito da labmul9.fisica.uniba.it 193.204.188.66
per dichiararlo e per inizializzare le variabili che lo contengono
Giovedi' 28 Giugno 2001 : 13 32 5 - ar da labmul14.fisica.uniba.it 193.204.188.72
E' un metodo con lo stesso nome della classe, che contiene le operazioni da fare per inizializzare l' oggetto
Giovedi' 28 Giugno 2001 : 13 33 1 - antonella da labmul6.fisica.uniba.it 193.204.188.63
serve per instanziare l'oggetto,dà all'oggetto delle proprietà
Giovedi' 28 Giugno 2001 : 13 33 4 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
è un metodo speciale che ha lo stesso nome della classe
Giovedi' 28 Giugno 2001 : 13 35 2 - zito da 193.204.188.60
Pippo a = new Pippo();
Pippo(){ }
Giovedi' 28 Giugno 2001 : 13 36 1 - zito da 193.204.188.60
Perche' e' consigliabile scrivere gli applet nella versione 1.1 di Java?
Giovedi' 28 Giugno 2001 : 13 36 4 - cosko da labmul10.fisica.uniba.it 193.204.188.67
Perché lo standard 1.0 è troppo limitato.
Giovedi' 28 Giugno 2001 : 13 36 4 - LFG da labmul2.fisica.uniba.it 193.204.188.59
Perchè i browser non supportano la versione 1.2
Giovedi' 28 Giugno 2001 : 13 36 5 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
è la più diffusa
Giovedi' 28 Giugno 2001 : 13 37 - donvito da labmul9.fisica.uniba.it 193.204.188.66
perchè è quella supportata dai browsers...mantre la 1.2 non è stata ancora implementata nei programmi di navigazione
Giovedi' 28 Giugno 2001 : 13 37 1 - gianni&domenico da labmul11.fisica.uniba.it 193.204.188.68
perchè la versione 1.2 non è supportata dal browser e, comunque, le istruzioni della versione 1.1 sono "passabili"
alla 1.2
Giovedi' 28 Giugno 2001 : 13 37 3 - av da labmul15.fisica.uniba.it 193.204.188.74
pechè nell'ultima versione ho dei problemi con il browser
Giovedi' 28 Giugno 2001 : 13 38 4 - ar da labmul14.fisica.uniba.it 193.204.188.72
per scrivere applet che si vedano nel browser
Giovedi' 28 Giugno 2001 : 13 38 5 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
per creare degli applet generali che potessero girare
su tutti i browser
Giovedi' 28 Giugno 2001 : 13 41 3 - zito da 193.204.188.60
Provate a scrivere un'applicazione che calcola il
massimo di un vettore di decimali?
Giovedi' 28 Giugno 2001 : 13 45 5 - LFg da labmul2.fisica.uniba.it 193.204.188.59
class Massimo{
public static void main(String args[]){
int a, b, c;
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c=Math.max(a,b);
System.out.println("il massimo di"+a+" _"+b+"e'"+c);
}
}
Giovedi' 28 Giugno 2001 : 13 46 5 - LFg da labmul2.fisica.uniba.it 193.204.188.59
class Massimo{
public static void main(String args[]){
int a, b, c;
a = Double.parseDouble(args[0]);
b = Double.parseDouble(args[1]);
c=Math.max(a,b);
System.out.println("il massimo di"+a+" _"+b+"e'"+c);
}
}
Giovedi' 28 Giugno 2001 : 13 47 1 - LFg da labmul2.fisica.uniba.it 193.204.188.59
class Massimo{
public static void main(String args[]){
double a, b, c;
a = Double.parseDouble(args[0]);
b = Double.parseDouble(args[1]);
c=Math.max(a,b);
System.out.println("il massimo di"+a+" _"+b+"e'"+c);
}
}
Giovedi' 28 Giugno 2001 : 13 47 5 - cosko da labmul10.fisica.uniba.it 193.204.188.67
class Max {
public static void main(String args[]){
float max = 0. ;
if(n > 0) {
for (int i = 0; i <= args.length; i++){
if (Integer.parseInt(args[i])>max) max=Integer.parseInt(args[i]);
}
}
System.out.println("Il massimo e'" + max);
}
}
Giovedi' 28 Giugno 2001 : 13 47 5 - gianni&domenico da labmul11.fisica.uniba.it 193.204.188.68
private double vet[];
for (int i=0; iif (vet[i]>max){
max=vet[i];
return(max);
}
Giovedi' 28 Giugno 2001 : 13 50 4 - antoniocavone da labmul12.fisica.uniba.it 193.204.188.69
main() {
int numero[10], conta;
for (conta=1;conta<=9;conta++)
scanf("%d",&numero[conta]);
}
Giovedi' 28 Giugno 2001 : 13 51 2 - antonella da labmul6.fisica.uniba.it 193.204.188.63
class Max{
public static void main (Sting args[]) {
int n=args.length;
int max=0;
for(int i=0;i if (args[i] max=args[i+1];
else
max=args[i];
}
}
}
Giovedi' 28 Giugno 2001 : 13 52 5 - av da labmul15.fisica.uniba.it 193.204.188.74
class Massimo {
public static void main(String args[]){
double nmax
int n
double v[]
v[1]=nmax
for(int i=2;iif (v[i]>nmax)
v[i]=nmax
else
v[1]=nmax
}
}
Giovedi' 28 Giugno 2001 : 13 53 3 - cosko da labmul10.fisica.uniba.it 193.204.188.67
alcune correzioni:
class Max {
public static void main(String args[]){
float max = 0. ;
if(args.length > 0) {
for (int i = 0; i <= args.length; i++){
if (Float.parseFloat(args[i])>max) max=Float.parseFloat(args[i]);
}
}
System.out.println("Il massimo e'" + max);
}
}
Giovedi' 28 Giugno 2001 : 13 55 5 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
public class MAX{
private int n;
public static void main MAX(String s[]){
n=s.length;
}
public double massimo(){
massimo=s[0];
for (int i>0;i if s[i]>s[0]
massimo=s[i];
}
return((float)massimo);
}
}
Giovedi' 28 Giugno 2001 : 13 58 1 - donvito da labmul9.fisica.uniba.it 193.204.188.66
public class Massimo{
private double m
private double serie[];
private int n;
/*costruttore*/
public Massimo(String s[]){
n = s.length;
serie = new double[n];
for (int i=0 ;i < n; i++){
serie[i] = Integer.parseInt(s[i]);
}
}
public double massimo(){
for (int i=0 ;i < n; i++){
m = s[i]
if (s[i] < s[i+1]){
m = s[i]
}
else {
m = s[i+1]}
}
System.out.println("Il massimo della serie di numeri è"+m);
}
}
Giovedi' 28 Giugno 2001 : 14 14 5 - mimmoeale da labmul1.fisica.uniba.it 193.204.188.58
import java.awt.*;
import java.applet.*;
import java.lang.Double;
public class Colori extends Applet {
Color c [];
double Left, Right, Top, Bottom;
double c1, c2;
public void init(){
double a, b;
c=new Color[500];
for (int xyz=0; xyz<4; xyz++){
a=Math.random();
b=100*Math.random();
for(int i=xyz*125;i<(xyz+1)*125;i++){
//c[i]=Color.getHSBColor(1.0F*i/500,1.0F,1.0F); tavolozza standard
//c[i]=Color.getHSBColor((float)Math.random(),1.0F,1.0F); tavolozza casuale
//c[i]=Color.getHSBColor((float)(1.0F*(b+a*i))/500),1.0F,1.0F); tavolozza lineare
c[i]=Color.getHSBColor((float)(1.0F*(b*(Math.log(a*(i-125*xyz))))/500),1.0F,1.0F); // logaritmica
}
Left=-2; Right=2.;
Top=1.5; Bottom=-1.5;
c1=0.1654104; c2=-0.6369678;
}
}
public void paint(Graphics g){
double x, y, x1,y1;
int ic;
for (int i1=0; i1<500; i1++){
g.setColor(c[i1]);
g.fillRect(i1, 0, 1, 50);
}
for (int i=0; i<200; i++){
for (int j=0; j<200; j++){
x=Left+i*((Right-Left)/200);
y=Bottom+j*((Top-Bottom)/200);
for (ic=0; icx1=x*x-y*y+c1;
y1=2*x*y+c2;
if (x1*x1+y1*y1>4)
break;
x=x1; y=y1;
}
if (ic==c.length)
g.setColor(Color.black);
else
g.setColor(c[ic]);
g.fillRect(i,j+100,1,1);
}
}
}
}
Giovedi' 28 Giugno 2001 : 14 16 4 - zito da 193.204.188.60
Come possiamo migliorare l'interfaccia del programma
in modo da poter scoprire quali sono i valori di c1 e c2
per cui si ottengono delle immagini interessanti?
Giovedi' 28 Giugno 2001 : 14 30 1 - zito da 193.204.188.60
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Colori extends Applet implements ActionListener{
Color c [];
double Left,Right,Top,Bottom;
double c1,c2;
Button tasto,tasto1;
Panel p1;
public void init(){
Left=-2.;Right=2.;Top=1.5;Bottom=-1.5;
c1=0.1654104;c2=-0.6369678;
c = new Color[500];
creaTavolozza();
//for(int i=0;i<500;i++){
// c[i]=Color.getHSBColor((float)(1F*(Math.random()*100*i*i/3)/500),1.0F,1.0F);
// }
tasto = new Button("Nuovo disegno");
tasto1 = new Button("Nuova tavolozza");
p1 = new Panel();
setLayout(new BorderLayout());
add(p1,BorderLayout.SOUTH);
p1.add(tasto);p1.add(tasto1);
tasto.addActionListener(this);
tasto1.addActionListener(this);
}
void creaTavolozza(){
double a, b;
for (int xyz=0; xyz<4; xyz++){
a=Math.random();
b=100*Math.random();
for(int i=xyz*125;i<(xyz+1)*125;i++){
c[i]=Color.getHSBColor((float)(1.0F*(b*(Math.log(a*(i-125*xyz))))/500),1.0F,1.0F);
}
}
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==tasto){
c1 = Math.random()*4-2.;
c2 = Math.random()*3-1.5;
repaint();
}
if(ev.getSource()==tasto1){
creaTavolozza();
repaint();
}
}
public void paint(Graphics g){
double x,y,x1,y1;
int ic;
for (int i1=0; i1<500; i1++){
g.setColor(c[i1]);
g.fillRect(i1, 0, 1, 50);
}
for(int i=0;i<200;i++){
for(int j=0;j<200;j++){
x = Left +i*((Right-Left)/200);
y = Bottom + j*((Top-Bottom)/200);
for(ic=0;icx1 = x*x - y*y +c1;
y1 = 2*x*y +c2;
if((x1*x1+y1*y1)>4.)break;
x=x1;y=y1;
}
if(ic ==c.length)g.setColor(Color.black);
else g.setColor(c[ic]);
g.fillRect(i,j+100,1,1);
}
}
}
}
Giovedi' 28 Giugno 2001 : 14 31 5 - zito da 193.204.188.60
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Colori extends Applet implements ActionListener{
Color c [];
double Left,Right,Top,Bottom;
double c1,c2;
Button tasto,tasto1;
Panel p1;
public void init(){
Left=-2.;Right=2.;Top=1.5;Bottom=-1.5;
c1=0.1654104;c2=-0.6369678;
c = new Color[500];
creaTavolozza();
//for(int i=0;i<500;i++){
// c[i]=Color.getHSBColor((float)(1F*(Math.random()*100*i*i/3)/500),1.0F,1.0F);
// }
tasto = new Button("Nuovo disegno");
tasto1 = new Button("Nuova tavolozza");
p1 = new Panel();
setLayout(new BorderLayout());
add(p1,BorderLayout.SOUTH);
p1.add(tasto);p1.add(tasto1);
tasto.addActionListener(this);
tasto1.addActionListener(this);
}
void creaTavolozza(){
double a, b;
for (int xyz=0; xyz<4; xyz++){
a=Math.random();
b=100*Math.random();
for(int i=xyz*125;i<(xyz+1)*125;i++){
c[i]=Color.getHSBColor((float)(1.0F*(b*(Math.log(a*(i-125*xyz))))/500),1.0F,1.0F);
}
}
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==tasto){
c1 = Math.random()*4-2.;
c2 = Math.random()*3-1.5;
repaint();
}
if(ev.getSource()==tasto1){
creaTavolozza();
repaint();
}
}
public void paint(Graphics g){
double x,y,x1,y1;
int ic;
for (int i1=0; i1<500; i1++){
g.setColor(c[i1]);
g.fillRect(i1, 0, 1, 50);
}
for(int i=0;i<200;i++){
for(int j=0;j<200;j++){
x = Left +i*((Right-Left)/200);
y = Bottom + j*((Top-Bottom)/200);
for(ic=0;ic < c.length;ic++){
x1 = x*x - y*y +c1;
y1 = 2*x*y +c2;
if((x1*x1+y1*y1)>4.)break;
x=x1;y=y1;
}
if(ic ==c.length)g.setColor(Color.black);
else g.setColor(c[ic]);
g.fillRect(i,j+100,1,1);
}
}
}
}
Giovedi' 28 Giugno 2001 : 14 56 - zito da 193.204.188.60
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Colori extends Applet implements ActionListener{
Color c [];
double Left,Right,Top,Bottom;
double c1,c2;
Button tasto,tasto1,tasto2;
TextField t1,t2;
Panel p1;
public void init(){
Left=-2.;Right=2.;Top=1.5;Bottom=-1.5;
c1=0.1654104;c2=-0.6369678;
c = new Color[500];
creaTavolozza();
//for(int i=0;i<500;i++){
// c[i]=Color.getHSBColor((float)(1F*(Math.random()*100*i*i/3)/500),1.0F,1.0F);
// }
tasto = new Button("Nuovo disegno");
tasto1 = new Button("Nuova tavolozza");
tasto2 = new Button("Disegna");
t1 = new TextField(Double.toString(c1));
t2 = new TextField(Double.toString(c2));
p1 = new Panel();
setLayout(new BorderLayout());
add(p1,BorderLayout.SOUTH);
p1.add(tasto);p1.add(tasto1);p1.add(tasto2);
p1.add(t1);p1.add(t2);
tasto.addActionListener(this);
tasto1.addActionListener(this);
tasto2.addActionListener(this);
}
void creaTavolozza(){
double a, b;
for (int xyz=0; xyz<4; xyz++){
a=Math.random();
b=100*Math.random();
for(int i=xyz*125;i<(xyz+1)*125;i++){
c[i]=Color.getHSBColor((float)(1.0F*(b*(Math.log(a*(i-125*xyz))))/500),1.0F,1.0F);
}
}
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==tasto){
c1 = Math.random()*4-2.;
c2 = Math.random()*3-1.5;
t1.setText(Double.toString(c1));
t2.setText(Double.toString(c2));
repaint();
}
if(ev.getSource()==tasto1){
creaTavolozza();
repaint();
}
if(ev.getSource()==tasto2)
{
c1 = Double.valueOf(t1.getText()).doubleValue();
c2 = Double.valueOf(t2.getText()).doubleValue();
repaint();
}
}
public void paint(Graphics g){
double x,y,x1,y1;
int ic;
for (int i1=0; i1<500; i1++){
g.setColor(c[i1]);
g.fillRect(i1, 0, 1, 50);
}
for(int i=0;i<200;i++){
for(int j=0;j<200;j++){
x = Left +i*((Right-Left)/200);
y = Bottom + j*((Top-Bottom)/200);
for(ic=0;ic < c.length;ic++){
x1 = x*x - y*y +c1;
y1 = 2*x*y +c2;
if((x1*x1+y1*y1)>4.)break;
x=x1;y=y1;
}
if(ic ==c.length)g.setColor(Color.black);
else g.setColor(c[ic]);
g.fillRect(i,j+100,1,1);
}
}
}
}