Lehrer Nussbaumer - JAVA (eine kleine Einführung ;) |
---|
GrundlagenGUIEingabeAusgabeApplikationen
AppletsServletsBeispieleSpieleIDEsSkriptumJAVA-DOCS----------------- letzte Änderung: 09 December 2021 ----------------- Lehrer Nussbaumers Seite ... in Arbeit ... |
SatellitenbahnenDie Bahnkurve eines Satelliten, der um die Erde kreist, soll punktweise berechnet und - maßstäblich verkleinert - ausgegeben werden. Dabei wird das "Gerüst" einer Applikation und die Methode paint() verwendet... Beispiel:Aus der Graviationskraft in einem Punkt des Erdschwerefeldes kann die Beschleunigung auf einen Satelliten, aus der Beschleunigung der Geschwindigkeitszuwachs, und aus der neuen Geschwindigkeit die Verschiebung des Satelliten (jeweils in einem bestimmten Zeitschritt) berechnet werden. Code:import java.awt.*; import java.awt.event.*; public class satellit extends Frame { satellit() { super("Bahnkurve eines Satelliten"); } public static void main (String[] args) { satellit proggi = new satellit(); WindowListener wl = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; proggi.addWindowListener(wl); proggi.setLocation(100,100); proggi.setSize(400,400); proggi.show(); } public void paint (Graphics g) { double GM, r, r3, x, y, vx, vy, ax, ay, dt, alpha, er; int zaehler; zaehler = 120; GM = 392000000000000.0; er = 6370000; alpha = 0; vx = 0; vy = 5500; dt = 500; x = 3*er;; y = 0; g.setColor(Color.white); g.fillRect(10,10,380,380); g.setColor(Color.red); g.drawOval(200 - (int)(er/(20*er)*400), 200 - (int)(er/(20*er)*400), (int)(er/(20*er)*800), (int)(er/(20*er)*800)); g.setColor(Color.blue); for (int i=1;i<zaehler;i++) { r3 = Math.sqrt(x*x+y*y); r=r3*r3*r3; ax=-GM*x/r; ay=-GM*y/r; vx=vx+ax*dt; vy=vy+ay*dt; x=x+vx*dt; y=y+vy*dt; g.fillRect(200+(int)(x/(20*er)*400),200+(int)(y/(20*er)*400),1,1); } } } Kommentar:
Aufgabe:Erweitere das Programm so, dass die "Starthöhe", die "Anfangsgeschwindigkeit", der "Abschusswinkel" und der "Zeitschritt" vom Benutzer gewählt werden kann (Texteingabefelder)! Ausserdem soll ein Button das Neuzeichnen der Satellitenbahn starten. |