|  | 
|   | 
 | 
  p.specht
 
   | Voreingestellt: Eine Demo, wieso Merkur seine Periheldrehung macht und nicht auf einer stabilen Kepler-Ellipse läuft. Andere Funktionen dienen zum rumspielen  
 WindowTitle "Trashware: Planetenbahnsimulation zum 'rumspielen"
'(CL)CopyLeft 2014-01 by P.Specht, Wien
Window 0,0-%maxx,%maxy-40:randomize:set("decimals",5):set("numwidth",9)
Font 2:var xx&=width(%hwnd)\2:var yy&=height(%hwnd)\2
var grad!=0.0174532925199432958:var rad!=57.2957795130823209
'=========================================================================
'    Experimentierfeld
'-------------------------------------------------------------------------
var G!=10^-17 : var m1!=10^20 : var v2!= 1'Periheldrehungen des Merkur
'var G!=10^-17 : var m1!=10^20 :var v2!= 2.2 ' Kreisbahn
'var G!=10^-15 : var m1!=10^20 :var v2!= 2.2 ' Mehr Gravitation?
'var G!=5*10^-18 : var m1!=10^20 :var v2!= 2 ' Pluto
'var G!=10^-15 : var m1!=10^30 :var v2!= 2.2 '
'=========================================================================
'var x2!=100:var y2!=0 ' Einschuss-Bahnpunkt
'     var w2!=90*grad! ' Einschusswinkel
var x2!=100:var y2!=0:var w2!=90*grad!
'=========================================================================
declare a2!,rr!,alpha!:declare a2x!,a2y!,v2x!,v2y!:declare n&
cls $cdcdcd:line 20,yy& - 2*xx&-20,yy&:line xx&,20 - xx&,2*yy&-20
repeat
    locate 1,1:'print n&,::inc n&
    print x2!,y2!,v2!,w2!*rad!;:usepen 1,22,rgb(255,255,0):line xx&,(yy&) - xx&+1,yy&
    usepen 0,12,rnd(8^8):line xx&+x2!,(yy&-y2!) - xx&+1+x2!,yy&-y2!
    alpha!=ArcTan4(x2!,y2!)
    rr!=sqr(x2!)+sqr(y2!):case rr!<10000:rr!=10000
    a2!= -G!*m1!/rr!
    v2x!=v2!*cos(w2!)+a2!*cos(alpha!)/2
    v2y!=v2!*sin(w2!)+a2!*sin(alpha!)/2
    w2!=ArcTan4(v2x!,v2y!)
    x2!=x2!+v2x!
    y2!=y2!+v2y!
    v2!=sqrt(sqr(v2x!)+sqr(v2y!))'*1.001
    waitinput 1:until %key=27:end
    proc ArcTan4 :parameters x!,y!
        var pi!=3.1415926535897932:var w!=0'(CL)2014-01 P.Specht§gmx.at
        if x!=0:if y!>0:w!=pi!*0.5:elseif y!<0:w!=pi!*1.5:else :w!=0:endif :return w!:elseif x!>0
            if y!=0:w!=0:return w!:elseif y!>0:if x!>y!:w!=arctan(y!/x!):else :w!=pi!/2-arctan(x!/y!):endif
                return w!:else :if x!<-y!:w!=pi!*1.5+arctan(x!/-y!):else :w!=2*pi!-arctan(-y!/x!):endif :return w!
                endif :else :if y!>0:if x!>-y!:w!=pi!/2+arctan(-x!/y!):return w!:else :w!=pi!-arctan(y!/-x!)
                return w!:endif :elseif y!<0:if x!<y!:w!=pi!+arctan(-y!/-x!):else :w!=pi!*1.5-arctan(-x!/-y!)
                endif :return w!:else :w!=pi!:return w!:endif :endif :Print " ArcTan4 ERROR":waitinput:waitinput
            endproc
 |  
  | 
|   | 
 | XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...   | 07.05.2021  ▲ |  
  | 
|   | 
 
 
  |