EOS 2  1.1.0
Einfache Objektbasierte Sprache
SpringenderBall.java
gehe zur Dokumentation dieser Datei
1 package examples;
2 
3 import eos.Kreis;
4 import eos.SchrittUhr;
5 import static eos.Funktionen.*;
6 
12 public class SpringenderBall {
13 
14  public static void main(String[] args) {
15  SpringenderBall ball = new SpringenderBall();
16  for (int i = 0; i < 1000; i++) {
17  ball.schritt();
18  }
19  }
20 
21  SchrittUhr uhr;
22  Kreis k;
23 
24  /* Ausgrund des Simulationsintervalls ist
25  * v in der Einheit [0,1 m/s]
26  * g in der Einheit [0,1 m/s^2]
27  */
28  double g;
29  double vx;
30  double vy;
31 
32  public SpringenderBall() {
33  this(0, 80, -0.1);
34  }
35 
36  public SpringenderBall(double x, double y, double g) {
37  k = new Kreis();
38  uhr = new SchrittUhr(10);
39  k.verschiebenNach(x, y);
40  this.g = g;
41  vx = 1;
42  vy = 0;
43  }
44 
45  public void schritt() {
46  k.verschieben(vx, vy);
47  if (k.mittexLesen() > 90) {
48  vx = -abs(vx);
49  }
50  if (k.mittexLesen() < -90) {
51  vx = abs(vx);
52  }
53  if (k.mitteyLesen() < -90) {
54  vy = abs(vy);
55  } else {
56  //Eigentlich müsse man die folgende Zeile immer machen
57  //jedoch hält der Ball sich dann nicht an den Energieerhaltungssatz,
58  //da er bei der Reflektion Energie gewinnt oder verliert.
59  //Je nachdem, ob man vor der Reflektion beschleunigt oder danach.
60  //Er müsste ja vor den Reflektion beschleunigen und danach bremsen.
61  vy = vy + g;
62  }
63  uhr.weiter();
64  }
65 }
void verschiebenNach(double x, double y)
Definition: Figur.java:40
void verschieben(double dx, double dy)
Definition: Figur.java:32
double mittexLesen()
Definition: Kreis.java:48
double mitteyLesen()
Definition: Kreis.java:40
SpringenderBall(double x, double y, double g)
static void main(String[] args)
Impressum