Ciao a tutti!! sono nuovo del forum,volevo sottoporvi questo mio problema:
ho scritto un programma che dovrebbe visualizzarmi un'immagine come questa:
http://it.wikipedia.org/wiki/File:Julia_set_(ice).png
comunque un frattale [la forma dipende dal parametro complesso c]
per quanto riguarda l'individuazione dei punti non ci sono problemi, quello che non riesco a fare e`
visualizzare l'immagine, ho provato con una canvas come di seguito:
dove Julia e` la classe che mi determina Il riconoscimento di appartenenza di un punto all'insieme di juliaCodice PHP:import java.awt.Canvas;
public class Grafica extends Canvas{
/**
*
*/
private static final long serialVersionUID = -1389264055269904774L;
Julia julia;
/**
*
*/
public Grafica() {
julia= new Julia();
setSize(julia.getPuntiX(),julia.getPuntiY());
setBackground( Color.white);
// TODO Stub di costruttore generato automaticamente
}
public void paint(Graphics g) {
int x=0;
int y=0;
int[] dati=julia.principale(julia);
for (int i = 0; i < julia.getPuntiX()*julia.getPuntiY(); i++) {
if(x ==julia.getPuntiX()){
y++;
x=0;
}
g.drawRect(x, y,x, y);
if (dati[i]!=(julia.getMaxiter()-1)) {
g.setColor(Color.black);
}
else{
g.setColor(Color.white);
}
}
}
}
principale(Julia ) mi restituisce un array con "il grado di appartenenza" di un punto all'insiemepartendo dal primo in alto a sinistra all'ultimo in basso a destra;
vorrei sostanzialmente che mi colorasse un pixel di nero se il valore di indice [i+j] dei dati[] e` pari al "limite del contatore", altrimenti mi lasciasse il colore bianco. [questa generalizazione mi serve per poi eventualmente progredire con l'aumento dei colori in base al valore dati[i+j], che per adesso e` superfluo.]
Codice PHP:
import java.awt.Frame;
class Uscita extends Frame {
/**
*
*/
private static final long serialVersionUID = 1L;
Panel panel ;
Grafica juliaImage;
Uscita()throws HeadlessException{
super();
}
public Uscita( String title) throws HeadlessException{
super(title);
init();
}
private void init() {
panel=new Panel();
// TODO Stub di metodo generato automaticamente
juliaImage=new Grafica();
panel.setSize(juliaImage.getHeight()+20,juliaImage.getWidth()+20);
panel.add(juliaImage);
}
}
per adesso preferirei non farne un applet anche se ho tentato pure questa strada.Codice PHP:
import java.awt.Frame;
class Uscita extends Frame {
/**
*
*/
private static final long serialVersionUID = 1L;
Panel panel ;
Grafica juliaImage;
Uscita()throws HeadlessException{
super();
}
public Uscita( String title) throws HeadlessException{
super(title);
init();
}
private void init() {
panel=new Panel();
// TODO Stub di metodo generato automaticamente
juliaImage=new Grafica();
panel.setSize(juliaImage.getHeight()+20,juliaImage.getWidth()+20);
panel.add(juliaImage);
}
}
qualcuno mi puo` aiutare?
grazie anticipatamente
Fabio

Rispondi quotando
