Колебание цилиндра
В вышеприведенной команде опция points дает
количество кадров в единичном интервале времени,
а опция frames - полное число кадров.
Вы можете, изменяя углы, начальную угловую
скорость, точку подвеса и даже сам объект
получать различные движения, например
> Object:=cylinder;
Axes:=[3,0,10];
Center:=[1,1,-3];
> Mass:=rho*physics[body_inert](m,Axes,object=Object,'volume');
> motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,
object=Object,static,
style=contour,contours=20,color=wheat,axes=normal,scaling=constrained,
abels=[r1,r2,r3],labelfont=[TIMES,BOLD,14]);
> n0:=physics[conv_coord]((r,v)->r,[1,0,0],move_c(v),frame=inv_zveer,angles=Angles);
l0:=physics[conv_coord]((r,v)->r,Center,move_c(v),frame=zveer,angles=Angles);
d0:=evalf(sqrt(evalm([0,l[2],l[3]]&*[0,l[2],l[3]])));
> motion([a,0,h],[x,y,z,op(Angles)],[omega[theta]],density=rho,intencity=[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..3);
Генерируем анимацию движения физического
маятника
> motion(Axes,[op(Center),op(Angles)],Velocity,type=Type,object=Object,style=patch,
lightmodel=`light4`,shading=`zhue`,frames=35,points=70,scaling=constrained);
|