Качание полусферы
Изменив опцию type вы можете наблюдать и другие
движения, например
> Type:=roll;
Object:=hemisphere;
Axes:=[5,0,Pi/2];
Mass:=rho*physics[body_inert](m,Axes,object=Object,'volume');
C:=physics[body_inert](m,Axes,object=Object,'center');
Center:=[0,0,C];
Angles:=[Pi/2,0,0];
Velocity:=[0,2,0];
> motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,
object=Object,static, style=contour,
contours=20,axes=normal,scaling=constrained,labels=[r1,r2,r3],labelfont=[TIMES,BOLD,14]);
> motion([R,0,Pi/2],[x,y,z,theta,phi,psi],[omega[theta],omega[phi],omega[psi]],
density=rho,intensity=[0,0,g],type=Type,object=Object,equations);
> motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,object=Object,equations):
Численное решение задачи
> Q:=motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,object=Object,solution);
Строим график зависимости угла от времени
> plot(Q[1],0..1);
Строим движение центра инерции в пространстве
> motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,
object=Object,spaceplot,frames=150,points=50);
Генерируем анимацию качания полусферы на
плоскости
> motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,
object=Object,style=patch,
lightmodel=`light4`,shading=`zhue`,frames=60,points=20,scaling=constrained);
>
|