English
Experimente

Missglückte Mehrkörper-Planetensimulation as badly Screen saver

 

p.specht


'3D-Weltraummüll, terminable as Screen saver tauglich
Window Title "Räumliche inkrementelle Mehrkörper-Orbitsimulation to Newton"
'(CL) CopyLeft 2014-01 by P.woodpecker, Wien. No Gewähr, for Garnichts!
Window Style 24:Window 0,0-%maxx,%maxy:cls 0:font 2
var xh&=width(%hwnd)\2:var yh&=height(%hwnd)\2
set("decimals",15):set("numwidth",30)
'print 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²]
' to Beschleunigung sun schwerer and Einschussgeschwindigkeiten increased!
n&=12' Max.Anz. body (under in the detail definiert)
dec n&:declare ax![n&],ay![n&],az![n&]'Errechnete Beschleunigungskomponenten
declare x_neu![n&],y_neu![n&],z_neu![n&]'schrittpuffer as Zwischenspeicher
declare vx_neu![n&],vy_neu![n&],vz_neu![n&]'schrittpuffer as Zwischenspeicher
'data: name,  volume, Durchmesser, Farbe&Helligkeit, Orts-    and  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 the Sytem temporary on n body except the sun (Testphase)
var Nr&=-n&' = show data the planets Nr&; - = off

REPEAT

    inc m&

    whileloop 0,n&:i&=&Loop' under Use the self-sufficiency the Coordinates: for each body...

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

        whileloop 0,n&:j&=&Loop' summiere any Beschleunigungsvektoren on, The by the measured

            case j&=i&:continue' all ANDEREN body causes are:
            rr!=sqr(x![j&]-x![i&])+sqr(y![j&]-y![i&])+sqr(z![j&]-z![i&])' = Quadrat the distance

            if rr! > 1000000000' or. r(i)+r(j) = Kollision, in the else-sprig To treat

                urrr!=1/(rr!*sqrt(rr!))' reciprocal value the third Potenz the Körperdistanzen [m]
                '(1 Potenz More as Gravitationsgesetz, circa Richtungsvektor-Multiplikation To kompensieren)

            else

                'here: Division through 0 - prevention through Ansatz of/ one rechnerischen Mindestdistanz
                urrr!=0' no v-Änderung

            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 the Beschleunigung on The speed: a/2 *t^2 , with t = 1 sek remaining a/2
        vx_neu![i&]=vx![i&]+ax![i&]*0.5' Puffer circa vorzeitigen Einfluss To prevent
        vy_neu![i&]=vy![i&]+ay![i&]*0.5
        vz_neu![i&]=vz![i&]+az![i&]*0.5
        ' bearing the new mittleren Geschwindigkeiten on The 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 circa vorzeitigen Einfluss To prevent
        z_neu![i&]=z![i&]+vz_neu![i&]

    endwhile

    Stelle_Situation_dar

    whileloop 0,n&:i&=&Loop' any planets: Umgreifen for next 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

END

Proc Stelle_Situation_dar

    declare r!,xx!,yy!

    whileloop 0,n&

        i&=&Loop
        r!=(1+dm![i&]*0.5)/(2500000+z_neu![i&])
        case i&=0:r!=7'Zonnenradius otherwise plenty To big
        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)
        ellipsis xh&+xx!-r!,(yh&-yy!-r!) - xh&+xx!+r!+1,yh&-yy!+r!+1

    endwhile

    case nr&<0:return' -1 = no data Show
    locate 1,1
    print " a =",stature$(fm$,ax![nr&]),stature$(fm$,ay![nr&]),stature$(fm$,az![nr&])
    print " v =",stature$(fm$,vx_neu![nr&]),stature$(fm$,vy_neu![nr&]),stature$(fm$,vz_neu![nr&])
    print "xyz:",stature$(fm$,x_neu![nr&]),stature$(fm$,y_neu![nr&]),stature$(fm$,z_neu![nr&])
    print " ";m$[nr&]," ... Step",stature$("000000",m&)',stature$(" 0000;-0000",xh&+xx!),stature$(" 000;-000",yh&-yy!)

endproc

'{ data the Zolar-Systems, temporary To Zmars association
Daten_holen:
' place and Geschwindigkeiten (z.B. on the 1.1.2000 00:00 watch UTZ(=GMT) )
i&=0' Katalognummer 0..n&-1, 0 = Zentralgestirn
m$[i&]="Zonne"
m![i&]=val("1.989e38")' val("1.989e30") 'volume in kg
farbe&[i&]=rgb(255,230,100)'colour * brightness
dm![i&]=val("1391000000")' Durchmesser in 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 in m
m![i&]=val("4.867e24")' volume in 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 in m
m![i&] =val("4.867e24")' volume in 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' with Überraschung, so OK!
m$[i&]="Zerde"
m![i&]=val("5.972e24")'volume in kg
dm![i&]=val("12742000")' Durchmesser in 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")'volume
dm![i&]=val("6779000")' Durchmesser in 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")'volume
dm![i&]=2*val("69911000")' Durchmesser in m
farbe&[i&]=rgb(200,150,80)
x![i&]=val("278500000000")' val("778500000000")'real
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 ex here (n& raise!) -----------------------
i&=6
m$[i&]="Zaturn"
m![i&]=val("568.3e24")'volume
dm![i&]=val("58232000")'*2 Durchmesser in m
farbe&[i&]=rgb(243,0,200)
x![i&]=0' val("1433000000000")'real
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")'volume
dm![i&]=val("8232000")' Durchmesser in 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") 'volume in kg
farbe&[i&]=rgb(255,230,100)'colour * brightness
dm![i&]=val("13910000")' Durchmesser in 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'...
05/14/21  
 



Zum Experiment


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

725 Views

Untitledvor 0 min.
Stringray01/05/22
Ernst07/21/21
Uwe ''Pascal'' Niemeier06/13/21
R.Schneider06/04/21
More...

Themeninformationen

this Topic has 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie