A&A Title Image Startseite | Programm: Bahnbewegung | Algorithmen, Lektionen, Simulationen | Unsere Vorläufer | Kontakt, Datenschutz

VdS-Journal 66 und 67: Bahnbewegung von Planeten

Aus Heft 66

import math
# Ellipse
a=1
e=0.6
b=math.sqrt(1-e*e)
f_ellip=math.pi*a*b
# Startpunkt
t=0
u=a*math.cos(t)-e
v=b*math.sin(t)
# Fläche ist erstmal 0
f=0
anzahlSchritte=200
# Schleife durch alle Werte von t
for i in range(0, anzahlSchritte):
        t=t+2*math.pi/anzahlSchritte
        x=a*math.cos(t)-e
        y=b*math.sin(t)
        p=math.sqrt((x-u)**2+(y-v)**2)
        q=math.sqrt(u**2+v**2)
        r=math.sqrt(x**2+y**2)
        s=(p+q+r)/2
        f=f+math.sqrt(s*(s-p)*(s-q)*(s-r))
        u=x
        v=y
        # Ephemeriden drucken
        print("Teilfläche (%):"+str(100*f/f_ellip)),
        T=180*math.atan2(y,x)/math.pi
        print("wahre Anomalie:",T)
        print("")
print("Berechnet: "+str(f))
print("Theorie:   "+str(f_ellip))
diff=abs(f-f_ellip)
print("Differenz   "+str(diff))
name = input("Fertig?")

Aus Heft 67

import math
# Grafik ca. von -300 bis 300
from turtle import *
def plot(x,y):
    penup()
    goto(x,y)
    pendown()
    dot(4)
    hideturtle()
  

# Hauptprogramm
import math
a=1
e=0.3
b=math.sqrt(1-e*e)
plot(300*e,0) # Sonne
t=0
u=a*math.cos(t)-e
v=b*math.sin(t)
plot(300*(u+e), 300*v)
f=0
i=1
anzahlPunkte = 32
for i in range(anzahlPunkte-1): 
    while f<math.pi*a*b/anzahlPunkte:
        t=t+math.pi/1000
        x=a*math.cos(t)-e
        y=b*math.sin(t)
        p=math.sqrt((x-u)**2+(y-v)**2)
        q=math.sqrt(u**2+v**2)
        r=math.sqrt(x**2+y**2)
        s=(p+q+r)/2
        f=f+math.sqrt(s*(s-p)*(s-q)*(s-r))
        u=x
        v=y
    f=f-math.pi*a*b/anzahlPunkte
    plot(300*(x+e),300*y)
name = input("Fertig?")