Français
Experimente

Missglückte Mehrkörper-Planetensimulation comme schlechter Bildschirmschoner

 

p.specht


'3D-Weltraummüll, begrenzt comme Bildschirmschoner tauglich
Titre de la fenêtre "Räumliche inkrementelle Mehrkörper-Orbitsimulation pour Newton"
'(CL) CopyLeft 2014-01 by P.Specht, vienne. aucun Gewähr, pour Garnichts!
Fenêtre Style 24:Fenêtre 0,0-%maxx,%maxy:cls 0:font 2
var xh&=width(%hwnd)\2:var yh&=height(%hwnd)\2
set("decimals",15):set("numwidth",30)
'imprimer 2*xh&,2*yh&:waitinput 2000 'Bildschirmauflösung
var fm$=mkstr$("0",16):fm$=" "+fm$+"."+fm$+";-"+fm$+"."+fm$+"; "+fm$+"."+fm$
declare m&,n&,i&,j&,k&,G!,rr!,urrr!
G!=6.67384*10^-11'Universelle Gravitationskonstante [m³/(kg*s²)]=[N m²/kg²]
' Zur Beschleunigung soleil schwerer et Einschussgeschwindigkeiten augmenté!
n&=12' Max.Qté. Körper (unten im Detail défini)
dec n&:declare ax![n&],ay![n&],az![n&]'Errechnete Beschleunigungskomponenten
declare x_neu![n&],y_neu![n&],z_neu![n&]'schrittpuffer comme Zwischenspeicher
declare vx_neu![n&],vy_neu![n&],vz_neu![n&]'schrittpuffer comme Zwischenspeicher
'données: nom,  Masse, Durchmesser, Farbe&Helligkeit, Orts-    et  Geschwindigkeitskomponenten:
declare m$[n&],m![n&],dm![n&],farbe&[n&],  x![n&],y![n&],z![n&],   vx![n&],vy![n&],vz![n&]
Goto "Daten_holen": weiter_hier:
n&=7' Beschränke cela Sytem vorläufig sur n Körper ausser qui soleil (Testphase)
var Nr&=-n&' = zeige données des Planeten Nr&; - = off

REPEAT

    inc m&

    whileloop 0,n&:i&=&Boucle' sous Nutzung qui indépendance qui Koordinaten: Pour jeden Körper...

        ax![i&]=0:ay![i&]=0:az![i&]=0

        whileloop 0,n&:j&=&Boucle' summiere alle Beschleunigungsvektoren sur, qui par qui Massen

            cas j&=i&:continue' aller ANDEREN Körper verursacht sommes:
            rr!=sqr(x![j&]-x![i&])+sqr(y![j&]-y![i&])+sqr(z![j&]-z![i&])' = Quadrat qui Distanz

            si rr! > 1000000000' bzw. r(i)+r(j) = Kollision, im d'autre-Zweig trop behandeln

                urrr!=1/(rr!*sqrt(rr!))' Kehrwert qui dritten Potenz qui Körperdistanzen [m]
                '(1 Potenz plus que Gravitationsgesetz, um Richtungsvektor-Multiplikation trop kompensieren)

            d'autre

                'ici: Division par 0 - Vermeidung par Ansatz einer rechnerischen Mindestdistanz
                urrr!=0' aucun v-Changement

            endif

            ax![i&]=ax![i&]+( m![j&]*(x![j&]-x![i&]) )*urrr!*G!
            ay![i&]=ay![i&]+( m![j&]*(y![j&]-y![i&]) )*urrr!*G!
            az![i&]=az![i&]+( m![j&]*(z![j&]-z![i&]) )*urrr!*G!

        endwhile

        ' influence qui Beschleunigung sur qui Geschwindigkeit: a/2 *t^2 , avec t = 1 sek bleibt a/2
        vx_neu![i&]=vx![i&]+ax![i&]*0.5' Puffer um vorzeitigen Einfluss trop verhindern
        vy_neu![i&]=vy![i&]+ay![i&]*0.5
        vz_neu![i&]=vz![i&]+az![i&]*0.5
        ' Auswirkung qui neuen mittleren Geschwindigkeiten sur qui Ortsveränderung:
        x_neu![i&]=x![i&]+vx_neu![i&]' s = s0 + Durchschnittl._V_unter_Beschleunigung * {t=1 sek}
        y_neu![i&]=y![i&]+vy_neu![i&]' Puffer um vorzeitigen Einfluss trop verhindern
        z_neu![i&]=z![i&]+vz_neu![i&]

    endwhile

    Stelle_Situation_dar

    whileloop 0,n&:i&=&Boucle' Alle Planeten: Umgreifen pour den prochain Iterationsschritt:

        x![i&]=x_neu![i&]
        y![i&]=y_neu![i&]
        z![i&]=z_neu![i&]
        vx![i&]=vx_neu![i&]
        vy![i&]=vy_neu![i&]
        vz![i&]=vz_neu![i&]

    endwhile

UNTIL &loop

FIN

Proc Stelle_Situation_dar

    declare r!,xx!,yy!

    whileloop 0,n&

        i&=&Boucle
        r!=(1+dm![i&]*0.5)/(2500000+z_neu![i&])
        cas i&=0:r!=7'Zonnenradius sonst viel trop grand
        xx!=(x_neu![i&])/(z_neu![i&]+579100000)
        yy!=(y_neu![i&])/(z_neu![i&]+579100000)
        usebrush 1,farbe&[i&]:usepen 0,1,farbe&[i&]*rnd(2)*(i& mod 11)
        ellipse xh&+xx!-r!,(yh&-yy!-r!) - xh&+xx!+r!+1,yh&-yy!+r!+1

    endwhile

    cas nr&<0:return' -1 = aucun données Montrer
    locate 1,1
    imprimer " a =",format$(fm$,ax![nr&]),format$(fm$,ay![nr&]),format$(fm$,az![nr&])
    imprimer " v =",format$(fm$,vx_neu![nr&]),format$(fm$,vy_neu![nr&]),format$(fm$,vz_neu![nr&])
    imprimer "xyz:",format$(fm$,x_neu![nr&]),format$(fm$,y_neu![nr&]),format$(fm$,z_neu![nr&])
    imprimer " ";m$[nr&]," ... Step",format$("000000",m&)',format$(" 0000;-0000",xh&+xx!),format$(" 000;-000",yh&-yy!)

endproc

'{ données des Zolar-Systems, provisorisch jusqu'à Zmars eingegeben
Daten_holen:
' lieu et Geschwindigkeiten (z.B. am 1.1.2000 00:00 montre UTZ(=GMT) )
i&=0' Katalognummer 0..n&-1, 0 = Zentralgestirn
m$[i&]="Zonne"
m![i&]=val("1.989e38")' val("1.989e30") 'Masse dans kg
farbe&[i&]=rgb(255,230,100)'la couleur * Helligkeit
dm![i&]=val("1391000000")' Durchmesser dans m
x![i&]=val("0")
y![n&]=val("0")
z![n&]=val("0")
vx![i&]=val("0 m/s")
vy![i&]=val("0 m/s")
vz![i&]=val("0 m/s")
i&=1
m$[i&]="Zmerkur"
dm![i&]=val("12104000")' Durchmesser dans m
m![i&]=val("4.867e24")' Masse dans kg
farbe&[i&]=rgb(200,200,255)
x![i&]=val("-108200000000")
y![n&]=val("0")
z![n&]=val("0")
vx![i&]=val("0 m/s")
vy![i&]=val("-100000000 m/s")'val("0 m/s")
vz![i&]=val("1100     m/s")
i&=2'OK
m$[i&]="Zvenus"
dm![i&]=val("12104000")' Durchmesser dans m
m![i&] =val("4.867e24")' Masse dans kg
farbe&[i&]=rgb(200,200,0)
x![i&]=val("108200000000")
y![n&]=val("0")
z![n&]=val("0")
vx![i&]=val("0 m/s")
vy![i&]=val("100000000 m/s")'val("0 m/s")'val("0     m/s")
vz![i&]=val("5500     m/s")
i&=3' avec Überraschung, so OK!
m$[i&]="Zerde"
m![i&]=val("5.972e24")'Masse dans kg
dm![i&]=val("12742000")' Durchmesser dans m
farbe&[i&]=rgb(150,200,255)
x![i&]=val("149600000000")
y![n&]=val(" ")
z![n&]=val(" ")
vx![i&]=val("0 m/s")
vy![i&]=val("183300000 m/s")
vz![i&]=val("6000  m/s")
'}
'{ Ausserhalb Erdbahn
i&=4
m$[i&]="Zmars"' Doppelüberraschung!!
m![i&]=val("639e21")'Masse
dm![i&]=val("6779000")' Durchmesser dans m
farbe&[i&]=rgb(200,200,0)
x![i&]=val("227900000000")
y![n&]=val("0")
z![n&]=val("0")
vx![i&]=val("0  m/s")
vy![i&]=val("-183300000    m/s")
vz![i&]=val("2000     m/s")
i&=5
m$[i&]="Zupiter"
m![i&]=val("1.898e27")'Masse
dm![i&]=2*val("69911000")' Durchmesser dans m
farbe&[i&]=rgb(200,150,80)
x![i&]=val("278500000000")' val("778500000000")'réel
y![n&]=val(" ")
z![n&]=val(" ")
vx![i&]=val("0  m/s")
vy![i&]=val("-28330000    m/s")
vz![i&]=val("0     m/s")
' }
' {----------------------------Experimente ab ici (n& erhöhen!) -----------------------
i&=6
m$[i&]="Zaturn"
m![i&]=val("568.3e24")'Masse
dm![i&]=val("58232000")'*2 Durchmesser dans m
farbe&[i&]=rgb(243,0,200)
x![i&]=0' val("1433000000000")'réel
y![n&]=val("1333000000000")
z![n&]=val("29999")
vx![i&]=val("0  m/s")
vy![i&]=val("-18330000    m/s")
vz![i&]=val("1555   m/s")
i&=7
m$[i&]="Zuranus"
m![i&]=val("568.3e24")'Masse
dm![i&]=val("8232000")' Durchmesser dans m
farbe&[i&]=rgb(189,200,0)
x![i&]=val(" ")
y![n&]=val(" ")
z![n&]=val(" ")
vx![i&]=val("0  m/s")
vy![i&]=val("-8330000    m/s")
vz![i&]=val("-8330000    m/s")
i&=8
m$[i&]="Zneptun"
m![i&]=val("1.98934")' val("1.989e30") 'Masse dans kg
farbe&[i&]=rgb(255,230,100)'la couleur * Helligkeit
dm![i&]=val("13910000")' Durchmesser dans m
x![i&]=val(" ")
y![n&]=val("-13330000000")
z![n&]=val(" ")
vx![i&]=val("100000  m/s")
vy![i&]=val("0    m/s")
vz![i&]=val("0     m/s")
Goto "weiter_hier"
'}
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
14.05.2021  
 



Zum Experiment


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

719 Views

Untitledvor 0 min.
Stringray05.01.2022
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
R.Schneider04.06.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie