Zykloiden, Animation mit Maple (Student Thomas Dulz, HAW Hamburg)

Mit dem nachfolgend gelisteten Maple-Script wird die nebenstehend zu sehende Animation erzeugt. Es ist als "Maple Worksheet" (mws-Datei) und als "Maple Text-Datei" zum Download verfügbar.

Hinweise:

Maple-Script

> restart:with(plots):with(plottools):
> x:=(v0,a,t)->v0*t-a*sin(v0*t/R);    
> y:=(v0,a,t)->R-a*cos(v0*t/R);
> Kreismittelpunkt_x:=(v0,a,t)->x(v0,a,t)+a*sin(v0*t/R);
> Bahngeschwindigkeit_v:=(v0,a,t)->v0*sqrt(1+(a/R)^2-2*a/R*cos(v0*t/R));
> R:=3:    # Radius Kreis
> a:=1.5:  # Abstand Kreismittelpunkt erste Animation
> b:=3:    # Abstand Kreismittelpunkt zweite Animation
> c:=6:    # Abstand Kreismittelpunkt dritte Animation
> v0:=1.5: # konstante Geschwindigkeit   
> t1:=33:  # Zeit der Animation
> display( # erste Animation
>        display(
>                [circle([Kreismittelpunkt_x(v0,R,0),R],R,thickness=1),
>                point([x(v0,a,0),y(v0,a,0)]),
>                line([Kreismittelpunkt_x(v0,a,0),R],
>                [x(v0,a,0),y(v0,a,0)],color=blue),
>                      textplot({[35,16,`konstante Geschwindigkeit des Kreismittelpunktes in m/s`],[35,15,v0]}),
>                      textplot({[35,13,`Radius des Kreises in m`],[35,12,R]}),
>                      textplot({[35,10,`Abstand Kreismittelpunkt zum grünen Punkt in m`],[35,9,a]}),
>                circle([x(v0,a,0),y(v0,a,0)],0.2, color=green)]
>                ),
>        seq(
>            display(
>                    [circle([Kreismittelpunkt_x(v0,R,i),R],R,thickness=1),
>                      point([x(v0,a,i),y(v0,a,i)]),
>                      plot([x(v0,a,t),y(v0,a,t),t=0..i],title='Zykloide'),
>                      textplot({[15,10,`Bahngeschwindigkeit in m/s`],[15,9,Bahngeschwindigkeit_v(v0,a,i)]}),
>                      textplot({[5,10,`Zeit in s`],[5,9,i]}),
>                      textplot({[35,16,`konstante Geschwindigkeit des Kreismittelpunktes in m/s`],[35,15,v0]}),
>                      textplot({[35,13,`Radius des Kreises in m`],[35,12,R]}),
>                      textplot({[35,10,`Abstand Kreismittelpunkt zum grünen Punkt in m`],[35,9,a]}),
>                      line([Kreismittelpunkt_x(v0,a,i),R],
>                      [x(v0,a,i),y(v0,a,i)],color=blue),
>                      circle([x(v0,a,i),y(v0,a,i)],0.2, color=green)]
>                    ),
>              i=1..t1),
>
>        # zweite Animation
>        display(
>                [circle([Kreismittelpunkt_x(v0,R,0),R],R,thickness=1),
>                point([x(v0,b,0),y(v0,b,0)]),
>                line([Kreismittelpunkt_x(v0,b,0),R],
>                [x(v0,b,0),y(v0,b,0)],color=blue),
>                      textplot({[35,16,`konstante Geschwindigkeit des Kreismittelpunktes in m/s`],[35,15,v0]}),
>                      textplot({[35,13,`Radius des Kreises in m`],[35,12,R]}),
>                      textplot({[35,10,`Abstand Kreismittelpunkt zum grünen Punkt in m`],[35,9,b]}),
>                circle([x(v0,b,0),y(v0,b,0)],0.2, color=green)]
>                ),
>        seq(
>            display(
>                    [circle([Kreismittelpunkt_x(v0,R,i),R],R,thickness=1),
>                      point([x(v0,b,i),y(v0,b,i)]),
>                      plot([x(v0,b,t),y(v0,b,t),t=0..i],title='Zykloide'),
>                      textplot({[15,10,`Bahngeschwindigkeit in m/s`],[15,9,Bahngeschwindigkeit_v(v0,b,i)]}),
>                      textplot({[5,10,`Zeit in s`],[5,9,i]}),
>                      textplot({[35,16,`konstante Geschwindigkeit des Kreismittelpunktes in m/s`],[35,15,v0]}),
>                      textplot({[35,13,`Radius des Kreises in m`],[35,12,R]}),
>                      textplot({[35,10,`Abstand Kreismittelpunkt zum grünen Punkt in m`],[35,9,b]}),
>                      line([Kreismittelpunkt_x(v0,b,i),R],
>                      [x(v0,b,i),y(v0,b,i)],color=blue),
>                      circle([x(v0,b,i),y(v0,b,i)],0.2, color=green)]
>                    ),
>              i=1..t1),
>
>        # dritte Animation
>        display(
>                [circle([Kreismittelpunkt_x(v0,R,0),R],R,thickness=1),
>                point([x(v0,c,0),y(v0,c,0)]),
>                line([Kreismittelpunkt_x(v0,c,0),R],
>                [x(v0,c,0),y(v0,c,0)],color=blue),
>                      textplot({[35,16,`konstante Geschwindigkeit des Kreismittelpunktes in m/s`],[35,15,v0]}),
>                      textplot({[35,13,`Radius des Kreises in m`],[35,12,R]}),
>                      textplot({[35,10,`Abstand Kreismittelpunkt zum grünen Punkt in m`],[35,9,c]}),
>                circle([x(v0,c,0),y(v0,c,0)],0.2, color=green)]
>                ),
>        seq(
>            display(
>                    [circle([Kreismittelpunkt_x(v0,R,i),R],R,thickness=1),
>                      point([x(v0,c,i),y(v0,c,i)]),
>                      plot([x(v0,c,t),y(v0,c,t),t=0..i],title='Zykloide'),
>                      textplot({[15,10,`Bahngeschwindigkeit in m/s`],[15,9,Bahngeschwindigkeit_v(v0,c,i)]}),
>                      textplot({[5,10,`Zeit in s`],[5,9,i]}),
>                      textplot({[35,16,`konstante Geschwindigkeit des Kreismittelpunktes in m/s`],[35,15,v0]}),
>                      textplot({[35,13,`Radius des Kreises in m`],[35,12,R]}),
>                      textplot({[35,10,`Abstand Kreismittelpunkt zum grünen Punkt in m`],[35,9,c]}),
>                      line([Kreismittelpunkt_x(v0,c,i),R],
>                      [x(v0,c,i),y(v0,c,i)],color=blue),
>                      circle([x(v0,c,i),y(v0,c,i)],0.2, color=green)]
>                    ),
>              i=1..t1),
>
>        scaling=constrained,insequence=true,thickness=4);