Hyperlinks - to pre-computed examples and explanations ( in OidEG.m )
Definitions with Explanations :
Cycloid/Trochoid Epicycloid Hypocycloid Epitrochoid Hypotrochoid
Animated Examples :
cycloid trochoid epicycloid hypocycloid epitrochoid hypotrochoid
The little hyperlinks " o " center the nearest figure for good viewing.
Instructions --- Create Your Own ---
"Execute" a command group by placing the cursor in the red stuff (anywhere) and [ENTER].
1. You MUST execute the command group "Initialize".
2. Select one of the 4 types by removing the "#" to un-comment your choice, and execute.
3. i) Set "N" only for ----cycloid types (always a = 1, and "b", "c" are computed from N).
ii) Set "b" also for ----trochoid types (always a = 1, and "c" is computed from N).
[Since these curves began by studying radius b-circles rolling on (or inside) radius a-circles,]
[usually b < a (= 1), but interesting effects can be produced with larger values of b.]
iii) Execute this command group.
Now, you see the "Static Graph" for your choices. If happy continue else go to step 2 or 3.
4. Animate your curve by simple executing the next command group. Some patience is needed.
Initialize - resets Maple environment, loads needed command packages, sets standard form
| > | restart: with(plots): with(plottools): |
Basic Parametric 2-D Curve : all points (x, y) with t in the domain [L . . R]
| > | G:=[x(t),y(t),t=L..R]: L:=0: R:=2*Pi: |
Standard Form : Epicycloids, Hypocycloids, Epitrochoids, Hypotrochoids
| > | x:=t->A*cos(t)+B*cos(C*t): y:=t->A*sin(t)+B*sin(C*t): |
Select a Curve Type -- un-comment ONE of the following
un-assigning a, b, c allows not starting completely over to switch between curve types.
| > | a:='a': b:='b': c:='c': |
| > | #A:=a+b: B:=-b: C:=(a+b)/b: titl:="Epicycloid": zz:=1: |
| > | #A:=a-b: B:=b : C:=-(a-b)/b: titl:="Hypocycloid": zz:=2: |
| > | #A:=a: B:=-b: C:=c: titl:="Epitrochoid": zz:=3: |
| > | A:=a: B:=b: C:=-c: titl:="Hypotrochoid": zz:=4: |
| > | titl, [x, y] = G; |
Set Values for a, b, c -- and see Static Plot
N = number of vertices (= a/b for ----cycloids) , you can change "b" if doing ----trochoids.
| > | N:=3: b:=2/3: c:=N-1: a:=1: |
| > | if (zz<3) then b:=a/N elif (zz=3) then c:=N+1 fi: |
| > | txN:=cat(" - N = ",convert(N,string)): titx:=cat(titl,txN): |
| > | txb:=cat(" , b/a = ",convert(b,string)): |
| > | if (zz>2) then titx:=cat(titl,txN,txb) fi: |
| > | Opt1:=scaling=constrained,axes=none,numpoints=200,title=titx: |
| > | Optg:=Opt1,titlefont=[TIMES,BOLD,14],color=black,thickness=2: |
| > | g:=plot(G,Optg): g; G; |
Go To : o Hyperlinks Restart Select Curve Type Re-Set Values
Animated with Rotating Circles --
| > | FF:=min(64,8*N): NN:=100+min(100,10*N): Dt:=evalf(2*Pi/FF): |
| > | OptAg:=Opt1,frames=FF+1,numpoints=NN,color=red,thickness=4: |
| > | Ag:=animatecurve(G,OptAg): |
| > | cent:=circle([0,0],a,color=green,thickness=3): |
| > | Optci:=color=blue,thickness=2,numpoints=32: |
| > | cir:=t->circle([A*cos(t),A*sin(t)],b,Optci): |
| > | Optra:=color=coral,thickness=5: |
| > | ray:=t->plot([[A*cos(t),A*sin(t)],[x(t),y(t)]],Optra): |
| > | Optpt:=color=maroon,font=[TIMES,BOLD,14]: |
| > | pt:=t->textplot([x(t),y(t),"P"],Optpt): |
| > | dc:=t->display(pt(t),cir(t),ray(t)): |
| > | cs:=seq([dc(i*Dt)],i=0..FF): V:=A+b+.1: |
| > | Optcs:=scaling=constrained,insequence=true,view=[-V..V,-V..V]: |
| > | dcs:=display(cs,Optcs): display(Ag,g,dcs,cent); G; |
Go To : o Hyperlinks Restart Select Curve Type Re-Set Values
| > |
| > |