Кирсанов М.Н. Решебник.Теоретическая механика.  М.:ФИЗМАТЛИТ, 2002.
 Иллюстрации и программы к книге
8.2. Задача 2
| > | restart: | 
| > | read «ris.m»; | 
Подписи шарниров на рисунке
| > | nam:=array(1..5,[‘O’,’A’,’B’,’C’,’D’]): Начальные значения и размеры ( cм) Замечание: DB уменьшено с 16см и угол 60 заменен на 30 для того, чтобы механизм делал полный оборот | 
| > | OA:=29: BC:=29: | 
| > | AB:=37: DB:=10: | 
Угловая скорость BD и период обращения
| > | omegaDB:=-4: T:=abs(2*pi/omegaDB): | 
Координаты опоры O
| > | x[1]:=0:y[1]:=0: | 
Координаты опоры D
| > | x[5]:=AB*cos(pi/6)-DB: | 
| > | y[5]:=-OA+AB*sin(pi/6): y[4]:=y[5]-BC*sin(pi/6): | 
Количество кадров K
| > | K:=12:with(plots):with(plottools): | 
Создаем все кадры
| > | for i from 0 to K do | 
| > | t:=i/K*T: | 
Закон движения DB
| > | phi:=t*omegaDB: Координаты шарнира B | 
| > | x[3]:=x[5]+DB*cos(phi): y[3]:=y[5]+DB*sin(phi): koord(1,3,2,OA,AB): x[4]:=x[3]+sqrt(BC^2-(y[3]-y[4])^2): P[i]:=display(seq(Cir(i,1),i=2..4), box(4,5,2), seq(Line(i,i+1,6+i),i=1..3), Line(5,3,6), seq(TEXT([x[j]-2,y[j]+3],nam[j]),j=1..5)): od: | 
Изображение механизма в движении
| > | PP:=display(seq(P[i],i=0..K),insequence=true, thickness=2, scaling=constrained, axes=none): | 
Warning, the name changecoords has been redefined
Warning, the name arrow has been redefined
| > | display(PP,seq(Опора(i,1),i=[1,5]),Поверхность(35,-28,30,3)); | 
| > | 

























