EOS 2  1.1.0
Einfache Objektbasierte Sprache
Pendel.java
gehe zur Dokumentation dieser Datei
1 package examples;
2 
3 import static eos.Farbe.*;
4 import static eos.Funktionen.*;
5 import static eos.Linienart.*;
6 import eos.Kreis;
7 import eos.Linie;
8 import eos.SchrittUhr;
9 
15 public class Pendel {
16 
17  public static void main(String[] args) {
18  Pendel pendel = new Pendel();
19  for (int i = 0; i < 1000; i++) {
20  pendel.schritt();
21  }
22  }
23  /* Ausgrund des Simulationsintervalls ist
24  * v in der Einheit [0,1 m/s]
25  * g in der Einheit [0,1 m/s^2]
26  */
27  double x;
28  double y;
29  double g;
30  double D_m;
31  double vx;
32  double vy;
33  double n;
34  Kreis gewicht;
35  Linie feder;
36  SchrittUhr uhr;
37 
38  public Pendel() {
39  this(20, -70, 0.007, -0.1);
40  }
41 
42  public Pendel(double x, double y, double D_m, double g) {
43  gewicht = new Kreis();
44  feder = new Linie();
45  feder.linienartSetzen(gestrichelt);
46  feder.linienStaerkeSetzen(2f);
47  gewicht.fuellfarbeSetzen(grau);
48  gewicht.verschiebenNach(x, y);
49  this.x = 0;
50  this.y = 30;
51  this.D_m = D_m;
52  this.g = g;
53  vx = 0;
54  vy = 0;
55  n = 30;
56  uhr = new SchrittUhr(10);
57  federKorrigieren();
58  }
59 
60  private void federKorrigieren() {
61  feder.endpunkteSetzen(gewicht.mittexLesen(), gewicht.mitteyLesen(), x, y);
62  }
63 
64  private void schritt() {
65  double dx = gewicht.mittexLesen() - x;
66  double dy = gewicht.mitteyLesen() - y;
67  double l = r(dx, dy) - n;
68  double alpha = phi(dx, dy);
69  double F = l * D_m;
70  vx = vx - cos(alpha) * F;
71  vy = vy - sin(alpha) * F + g;
72  gewicht.verschieben(vx, vy);
73  federKorrigieren();
74  uhr.weiter();
75  }
76 }
void verschiebenNach(double x, double y)
Definition: Figur.java:40
void verschieben(double dx, double dy)
Definition: Figur.java:32
void fuellfarbeSetzen(Farbe farbe)
double mittexLesen()
Definition: Kreis.java:48
double mitteyLesen()
Definition: Kreis.java:40
void endpunkteSetzen(double x1, double y1, double x2, double y2)
Definition: Linie.java:85
void linienStaerkeSetzen(double staerke)
Definition: Linie.java:24
void linienartSetzen(LineStyle linienart)
Definition: Linie.java:32
static void main(String[] args)
Definition: Pendel.java:17
Pendel(double x, double y, double D_m, double g)
Definition: Pendel.java:42
Impressum