Программа 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"; |