Gegroet,
voor een practicum opgave moet ik een Mandelbrot figuur programmeren maar ik heb er wat problemen mee:
-ik krijg nu nog alleen maar een langzaam ladend geel vlak, eerst kreeg ik nog tenminste een langzaam ladend rood en geel vlak.
-ik weet dat het aan de schaal ligt, maar ik weet niet waar en hoe ik deze kan 'instellen'.
-ik heb nog geen idee hoe ik de schaal textbox en maximale aantal herhalingen textbox kan 'instellen'.
De bedoeling is dat ik uiteindelijk een Mandelbrot figuur heb met verschillende kleuren, waar je met behulp van de textboxen de beginwaarden, de schaalfactor en het maximum aantal herhalingen kan bepalen.
Later moet er nog een mogelijkheid bijkomen om met de muis te kunnen inzoomen, maar dat komt later.
voor een practicum opgave moet ik een Mandelbrot figuur programmeren maar ik heb er wat problemen mee:
-ik krijg nu nog alleen maar een langzaam ladend geel vlak, eerst kreeg ik nog tenminste een langzaam ladend rood en geel vlak.
-ik weet dat het aan de schaal ligt, maar ik weet niet waar en hoe ik deze kan 'instellen'.
-ik heb nog geen idee hoe ik de schaal textbox en maximale aantal herhalingen textbox kan 'instellen'.
De bedoeling is dat ik uiteindelijk een Mandelbrot figuur heb met verschillende kleuren, waar je met behulp van de textboxen de beginwaarden, de schaalfactor en het maximum aantal herhalingen kan bepalen.
Later moet er nog een mogelijkheid bijkomen om met de muis te kunnen inzoomen, maar dat komt later.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
| import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Mandelbrot extends Applet
implements ActionListener,
MouseListener
{
double scale, schaal;
public int width;
public int height;
public int max;
public TextField xbox, ybox, scalebox, maxbox;
public double x, y, wscale, wmax;
public void init ()
{
// maakt textboxen
int maxPar; //maximale parameter
x =0;
y =0; //doen iets
double xPar, yPar, scalePar; //voor de doubles
xPar = 0.0;
yPar = 0.0;
scalePar = 0.01;
maxPar = 100;
width = this.getWidth();
height = this.getHeight();
xbox = new TextField ("X", 15); this.add(xbox);
xbox.addActionListener(this);
ybox = new TextField ("Y", 15); this.add(ybox);
ybox.addActionListener(this);
scalebox = new TextField ("Schaal", 15); this.add(scalebox);
scalebox.addActionListener(this);
maxbox = new TextField ("Aantal herhalingen", 15); this.add(maxbox);
maxbox.addActionListener(this);
xbox.setText(""+xPar);
ybox.setText(""+yPar);
scalebox.setText(""+scalePar);
maxbox.setText(""+maxPar);
this.add(xbox);
this.add(ybox);
this.add(scalebox);
this.add(maxbox);
}
public void actionPerformed(ActionEvent e)
{
x = Double.parseDouble(xbox.getText());
y = Double.parseDouble(ybox.getText());
scale = Double.parseDouble(scalebox.getText());
max = Integer.parseInt(maxbox.getText());
this.repaint();
}
// Berekend mandelbrotgetal
public int mandelbrot(double x, double y)
{ double a, b;
a=0; b=0;
int mandelbrot;
mandelbrot = 0;
while ((Math.sqrt(a*a + b*b)<=4) && (mandelbrot<=max))
{
double aOud = a;
a = aOud*aOud-b*b + x;
b = 2*aOud*b + y;
mandelbrot++;
}
return(mandelbrot);
}
// tekent mandelbrot
public void paint (Graphics g)
{
for (int x = 0; x<400; x++)
{
for (int y = 0; y<400; y++)
{ double mandelX, mandelY;
mandelX = (x-200) * scale;
mandelY = (y-200) * scale;
tekenPixel(x,y,g, mandelbrot(mandelX, mandelY));
}
}
}
// bepaald kleur mandelbrot
public void tekenPixel (int x, int y, Graphics g, int mandelbrot)
{
if (mandelbrot % 2 == 0)
g.setColor(Color.red);
else
g.setColor(Color.yellow);
// double a = x * schaal;
// double b = y * schaal;
// // MOET NOG OPGESCHOVEN EN OMGEREKEND WORDEN
// // BEREKEN HIER DE KLEUR MBV 'MANDELGETAL%2'
g.fillRect (x,y,1,1);
}
public void mouseClicked (MouseEvent e)
{
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
} |
[ Voor 14% gewijzigd door Verwijderd op 04-10-2007 17:32 ]