- Generare una tavolozza randomMercoledi' 27 Giugno 2001 : 13 32 2 - zito da 193.204.188.60
- Aggiungere un'interfaccia grafica
- Fare un'animazione delle immagini prodotte al variare
delle costanti c1 e c2
this = oggetto nel quale vi trovate:Mercoledi' 27 Giugno 2001 : 13 52 - Anonimo da labmul4.fisica.uniba.it 193.204.188.61
this.a;
this.repaint();
this();
super = genitore dell'oggetto nel quale vi trovate;
super(); richiama il costruttore
super.a;
super.repaint();
Mercoledi' 27 Giugno 2001 : 13 54 2 - zito da 193.204.188.60No comment
this = oggetto nel quale vi trovate:Mercoledi' 27 Giugno 2001 : 13 55 1 - zito da 193.204.188.60
this.a;
this.repaint();
this();
super = genitore dell'oggetto nel quale vi trovate;
super(); richiama il costruttore
super.a;
super.repaint();
Come generare una tavolozza casuale?Mercoledi' 27 Giugno 2001 : 14 6 5 - cgm da labmul10.fisica.uniba.it 193.204.188.67
nella getHSBColor si applica un calcolo al posto di 1.0F*i/500:Mercoledi' 27 Giugno 2001 : 14 9 - Anonimo da labmul15.fisica.uniba.it 193.204.188.74
esempio: c[i]=Color.getHSBColor(1.0F*(2*i*i/3)/500,1.0F,1.0F);
Mercoledi' 27 Giugno 2001 : 14 11 5 - cgm da labmul10.fisica.uniba.it 193.204.188.67
for(int i=0;i<200;i++){
c[i]=Color.getHSBColor(1.0F*(i*i)/200,1.0F,1.0F);
}
aggiungiamo un bottone che ricalcola la tavolozza.Mercoledi' 27 Giugno 2001 : 14 23 2 - zito da 193.204.188.60
Aggiungiamo un tasto che serva a ricalcolare lMercoledi' 27 Giugno 2001 : 14 35 4 - zito da 193.204.188.60
l'immagine con valori a caso di c1 e c2;
import java.awt.*;Mercoledi' 27 Giugno 2001 : 14 45 4 - zito da 193.204.188.60
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;
public void init(){
Left=-2.;Right=2.;Top=1.5;Bottom=-1.5;
c1=0.1654104;c2=-0.6369678;
c = new Color[500];
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");
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<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);
}
}
}
}
Come si fa a disegnare il tasto di dimensioni normali?Mercoledi' 27 Giugno 2001 : 14 47 5 - Anonimo da labmul15.fisica.uniba.it 193.204.188.74
Mercoledi' 27 Giugno 2001 : 14 54 - zito da 193.204.188.60
panel.setLayout(new BorderLayout(*,*));
import java.awt.*;Mercoledi' 27 Giugno 2001 : 14 58 1 - Anonimo da labmul4.fisica.uniba.it 193.204.188.61
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];
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<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);
}
}
}
}
Mercoledi' 27 Giugno 2001 : 15 5 - cgm da labmul10.fisica.uniba.it 193.204.188.67No comment
Multitavolozza logaritmica:
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);
}
}
}
}