Ponieważ nikt nie kwapił się do symulacji, zrobiłem to sam. Poniższa symulacja jest bez żadnych efektów specjalnych, dlatego też widz który nie zna zagadnień mechaniki obrotu bryły sztywnej może niewiele z niej zrozumieć. Postaram się w najbliższym czasie zrobić animacje z tłumaczeniem tak aby mogli ją też zrozumieć nie Fizycy.
Opis zjawiska jest w moich poprzednich notkach
http://przestrz.salon24.pl/771163,mechanika-obrotu-punktu-bryly-sztywnej
http://przestrz.salon24.pl/774992,czym-sa-wzory-eulera
Co ciekawe szukając materiałów natknąłem się na jeszcze jednego miłośnika efektu Dżanibekowa który jak wynika z filmiku również ma ciekawe wyniki.
kod do symulacji
from visual import *
masa11=sphere(pos = vector(1,0,0), radius =0.1, color = color.red)
masa12=sphere(pos = vector(-1,0,0), radius =0.1, color = color.red)
masa21=sphere(pos = vector(0,1,0), radius =0.1, color = color.blue)
masa22=sphere(pos = vector(0,-1,0), radius =0.1, color = color.blue)
cylinder(pos = masa11.pos, radius =0.01, axis=masa12.pos-masa11.pos)
cylinder(pos = masa21.pos, radius =0.01, axis=masa22.pos-masa21.pos)
Ix=1
Iy=2
Iz=3
wx=0
wy=1
wz=0.01
kropka=sphere(pos=vector(wx,wy,wz), radius=0.01, color= color.blue, make_trail=True)
kropka2=sphere(pos=vector(wx,wy,wz), radius=0.01, make_trail=True)
omega=arrow(axis=vector(0,0.01,0), color= color.blue)
epsilon=arrow(axis=vector(0,0.01,0))
epx=arrow(axis=vector(0.01,0,0), color= color.yellow)
epy=arrow(axis=vector(0,0.01,0), color= color.green)
epz=arrow(axis=vector(0,0,0), color= color.orange)
dt=0.05
t=0
while t<830:
rate(100)
ex=((Iy-Iz)*wy*wz)/Ix
ey=((Iz-Ix)*wz*wx)/Iy
ez=((Ix-Iy)*wx*wy)/Iz
wx=wx+ex*dt
wy=wy+ey*dt
wz=wz+ez*dt
# omega.axis=vector(wx,wy,wz)
kropka.pos=vector(wx,wy,wz)
kropka2.pos=vector(ex,ey,ez)
# epsilon.axis=vector(ex,ey,ez)
e=sqrt((ex*ex)+(ey*ey)+(ez*ez))
epx.axis=vector(ex,0,0)
epy.axis=vector(0,ey,0)
epz.axis=vector(0,0,ez)
w=sqrt((wx*wx)+(wy*wy)+(wz*wz))
# print t, w
# print t, w, e
print t, ex, ey, ez
t=t+1