M1 = new Massenpunkt(1.0, 0.0, 0.5, 1.5, 1.0);
M2 = new Massenpunkt(1.0, 0.0, 0.5, 1.5, 4.0);
M3 = new Massenpunkt(1.0, 0.0, 0.5, 1.5, 9.0);
...
M1.euler(dt, kraft1);
M2.euler(dt, kraft2);
M3.euler(dt, kraft3);
...
oder mit den Arrays:
Massenpunkt M[] = new Massenpunkt[3];
M[0] = new Massenpunkt(1.0, 0.0, 0.5, 1.5, 1.0);
M[1] = new Massenpunkt(1.0, 0.0, 0.5, 1.5, 4.0);
M[2] = new Massenpunkt(1.0, 0.0, 0.5, 1.5, 9.0);
for(int i = 0; i < 3; i++) {
...
M[i].euler(dt, kraft[i]);
...
}
Vektor kraft = new Vektor(0.0, 0.0);
for(int i = 0; i < 3; i++) {
if(i != n) {
kraft.x += -ax * (M[n].q.x - M[i].q.x);
kraft.y += -ay * (M[n].q.y - M[i].q.y);
}
}
return kraft;
}
public void paint(Graphics g) {
Massenpunkt M[] = new Massenpunkt[N];
Color Farbe[] = new Color[N];
Vektor kraft[] = new Vektor[N];
double tmax = 15.0, dt = 0.01;
M[0] = new Massenpunkt(-1.0, 0.0, 0.0,
-0.1, 1.0);
M[1] = new Massenpunkt(1.0, 0.0, 0.0,
0.1, 4.0);
M[2] = new Massenpunkt(0.0, 1.0, 0.0,
0.0, 9.0);
Farbe[0] = Color.blue;
Farbe[1] = Color.red;
Farbe[2] = Color.green;
setRange(-2.0, 2.0, -2.0, 2.0);
for(double t = 0.0; t <= tmax; t += dt) {
// Momentaufnahme der Kraefte
for(int i = 0; i < N; i++) {
kraft[i] = Gravitationskraft(M,
i);
}
// Integration und zeichnen
for(int i = 0; i < N; i++) {
M[i].euler(dt, kraft[i]);
g.setColor(Farbe[i]);
g.fillOval(sx(
M[i].q.x) - 2, sy(M[i].q.y) - 2, 4,
4);
}
}
}