1. Rovinné křivky – Příklad 1.8 – Hypocykloida

Po pevné kružnici se zvnitřku kotálí další kružnice. Pevný bod na ní opisuje tzv. hypocykloidu. Napište její parametrické vyjádření.

Řešení

PDF

> restart:with(plots):setoptions(scaling=constrained):

Animaci vytvoříme podobně jako u epicykloidy. Zvolíme poloměr pevné kružnice R=9 a poloměr kotálející kružnice r=2:

> hypocycloid:=t->[(R-r)*cos((r/R)*t)+r*cos(t-(r/R)*t),(R-r)*sin((r/R)*t)-r*sin(t-(r/R)*t)];

hypocycloid := proc (t) options operator, arrow; [(R-r)*cos(r/R*t)+r*cos(t-r/R*t), (R-r)*sin(r/R*t)-r*sin(t-r/R*t)] end proc

> R:=9;r:=2;interval:=9;

R := 9
r := 2
interval := 9

> A:=animatecurve([hypocycloid(t)[1],hypocycloid(t)[2],t=0..interval*2*Pi],frames=50,numpoints=200):
> B:=animate([(R-r)*cos(s)+t*(hypocycloid(s*R/r)[1]-(R-r)*cos(s)),(R-r)*sin(s)+t*
(hypocycloid(s*R/r)[2]-(R-r)*sin(s)),t=0..1],s=0..(r/R)*interval*2*Pi,frames=50,color=blue):
> C:=animate([(R-r)*cos(s)+r*cos(t),(R-r)*sin(s)+r*sin(t),t=0..2*Pi],s=0..(r/R)*interval*2*Pi,
frames=50,color=blue):
> E:=plot([R*cos(t),R*sin(t),t=0..2*Pi],color=black):
> display(A,B,C,E);

[Maple Plot]

Při všech animacích musíme při změně poloměru kružnic znovu několikrát spustit příkazové řádky, aniž bychom je měnili. Nabízí se tedy vytvoření procedury, kde vstupním parametrem budou příslušné poloměry a interval animace. Např. pro hypocykloidu uvažujme následující uživatelskou proceduru:

> hypocycloid_anim:=proc(r,R,interval)

local hyp,A,B,C,E;
hyp:=t->[(R-r)*cos((r/R)*t)+r*cos(t-(r/R)*t),(R-r)*sin((r/R)*t)-r*sin(t-(r/R)*t)]:
A:=animatecurve([hyp(t)[1],hyp(t)[2],t=0..interval*2*Pi],frames=50,numpoints=200):
B:=animate([(R-r)*cos(s)+t*(hyp(s*R/r)[1]-(R-r)*cos(s)),(R-r)*sin(s)+t*(hyp(s*R/r)[2]-(R-r)*sin(s)),t=0..1],s=0..(r   /R)*interval*2*Pi,frames=50,color=blue):
C:=animate([(R-r)*cos(s)+r*cos(t),(R-r)*sin(s)+r*sin(t),t=0..2*Pi],s=0..(r/R)*interval*2*Pi,frames=50,color=blue):
E:=plot([R*cos(t),R*sin(t),t=0..2*Pi],color=black):
display(A,B,C,E);

end:

Pro Steinerovu křivku ( [Maple OLE 2.0 Object]) a asteroidu ( [Maple OLE 2.0 Object]) vystačíme s příkazy:

> hypocycloid_anim(1,3,3);

[Maple Plot]

> hypocycloid_anim(1,4,4);

[Maple Plot]
Stránky Přírodovědecké fakulty MU
| Technická spolupráce:
| Servisní středisko pro e-learning na MU, 2008
| Stránky střediska na Elportále