Программа 9. Набор стандартных процедур для рисунков механизмов

>    restart:
with(plottools):with(plots):pi:=evalf(Pi):

     Процедура изображения неподвижной опоры в точке i

>    Опора:=proc(i,R) local x0,x1,y0,h,N:
x0:=x[i]-R*0.7:x1:=x[i]+R*0.7:
y0:=y[i]-R*0.7:h:=3*R:N:=2:
display(PLOT(circle([x[i],y[i]],R,color=blue)),
        PLOT(CURVES([[x0,y0],[x[i]-h,y[i]-h]],
                    [[x1,y0],[x[i]+h,y[i]-h]],
                    [[x0-h,y[i]-h],[x1+h,y[i]-h]],
     seq([[x0-h*(-j/N+1),y[i]-h],
         [x0-h*(-j/N+1)-h/4,y[i]-h*1.3]],j=0..2*N+1)  ))):
end:

 Процедура изображения окружности с центром в точке i

>    Окружн:=proc(i,R) global CLR: PLOT(circle([x[i],y[i]],R,color=CLR)) end:

>    Цвет окружности по умолчанию

>    CLR:=blue:

 Процедура изображения линии от точки i  к j

>    ЛиниЯ:=proc(i,j) global x,y:
PLOT(CURVES([[x[i],y[i]],[x[j],y[j]]])):
end:

 Процедура  определения координат точки K по координатам i и j и длинам ik jk

>    Координата:=proc(i,j,k,ik,jk)
local L0,sina,cosa,cosb,sinb:global x,y:
L0:=Pif(x[i]-x[j],y[i]-y[j]):

>    sina:=(y[i]-y[j])/L0:cosa:=(x[i]-x[j])/L0:

>    cosb:=(jk^2+L0^2-ik^2)/(2*jk*L0): sinb:=sqrt(1-cosb^2):

                     Координаты шарнира к

>    x[k]:=x[j]+jk*(cosa*cosb-sina*sinb):

>    y[k]:=y[j]+jk*(sina*cosb+cosa*sinb):
end:

 Процедура  определения координат средней точки K по координатам i и j и длинам ik jk

>    Координата2:=proc(i,j,k,ik,jk)
global x,y:
x[k]:=x[i]+ik/(ik+jk)*(x[j]-x[i]):

>    y[k]:=y[i]+ik/(ik+jk)*(y[j]-y[i]):end:

 Процедура "Теорема Пифагора"

>    Pif:=(x,y)-> sqrt(x^2+y^2):

Запись процедур на диск

>    save CLR,Pif,Координата,Координата2,pi,ЛиниЯ,Окружн,Опора, "C:\\Podpr1.m";