Line(x2,y2,x1,y1); {аналог релятивного ускорения}.
Строим аналоги нормального и тангенциального ускорений точки B3 x1 := pax; y1 := pay; x2 := x1 - round(ka*lcb*sqr(om3)*cos(fi3)); y2 := y1 + round(ka*lcb*sqr(om3)*sin(fi3));
Line(x1,y1,x2,y2); {аналог нормального ускорения} x1 := x2 - round(ka*lcb*epsi3*sin(fi3)); y1 := y2 - round(ka*lcb*epsi3*cos(fi3));
Line(x2,y2,x1,y1); {аналог тангенциального ускорения}. Line(pax,pay,x1,y1); {аналог полного ускорения B3}
Определяем аналог ускорения точки D и строим аналоги нормального и тангенциального ускорений точки E x1 := pax + round(ka*adx);
y1 := pay - round(ka*ady); x2 := x1 - round(ka*l4*cos(fi4)*sqr(om4)); y2 := y1 + round(ka*l4*sin(fi4)*sqr(om4));
Line(x1,y1,x2,y2); {аналог нормального ускорения Ned} x1 := x2 - round(ka*l4*sin(fi4)*epsi4); y1 := y2 - round(ka*l4*cos(fi4)*epsi4);
Line(x2,y2,x1,y1); {аналог тангенциального ускорения Ted} x2 := pax + round(ka*a5);
y2 := pay;
Line(pax,pay,x2,y2); {аналог полного ускорения точки E}.
Здесь необходимо отметить, что на рис. 6 не показано нормальное ускорение Ned, хотя мы его строили. Все это происходит из-за выбранного коэффициента увеличения: отрезок данного ускорения очень мал и вырождается в точку.
Unit Diada;
Interface Var
a11,a12,a21,a22,calpha,salpha : real; b1,b2,alpha,znam : real; bx,by : real; ch : char;
Procedure Diada1v(sb,ax,ay,vax,vay,aax,aay,cx,cy,vcx,vcy,acx, acy,l2,l3: real; Var fi2,omega2,epsi2,fi3,omega3,epsi3: real); Procedure Diada2v(ax,ay,vax,vay,aax,aay,cx,cy,vcx,vcy,acx,acy, fi3,omega3,epsi3,l2,l3: real; Var fi2,omega2,epsi2,l4,v4,a4:real); Procedure Diada3v(ax,ay,vax,vay,aax,aay,cx,cy,vcx,vcy,acx,acy, l2: real; Var fi3,omega3,epsi3,l3,v3,a3: real);
Procedure Diada4v(ax,ay,vax,vay,aax,aay,fi2,omega2,epsi2,cx,cy, vcx,vcy,acx,acy,fi3,omega3,epsi3,l2,l3: real; Var l1,v1,a1, l4,v4,a4: real);
Procedure Diada5v(ax,ay,vax,vay,aax,aay,cx,cy,vcx,vcy,acx,acy, l2,fi3,omega3,epsi3,alpha: real; Var Ax2,Vax2,Aax2,
Bx3,Vbx3,Abx3: real);
Function Atan2(x,y: real): real;
Implementation
Function Atan2; Begin
if (x > 0) and (y >= 0) then Atan2 := ArcTan(y/x); if (x > 0) and (y <= 0) then Atan2 := 2*pi - ArcTan(abs(y)/x); if (x < 0) and (y >= 0) then Atan2 := pi - ArcTan(y/abs(x)); if (x < 0) and (y <= 0) then Atan2 := pi + ArcTan(y/x); if (x = 0) and (y > 0) then Atan2 := pi/2;
if (x = 0) and (y < 0) then Atan2 := 3*pi/2
End;
Procedure Diada1v;
Var
ac,bx1,by1,bx,by : real; Begin { Diada1v }
ac := sqrt(sqr(cx - ax) + sqr(cy - ay)); alpha := Atan2(cx - ax,cy - ay); salpha := sin(alpha); calpha := cos(alpha);
bx1 := (sqr(l2) + sqr(ac) - sqr(l3))/(2*ac); by1 := sqrt(sqr(l2) - sqr(bx1)); if sb = 2 then by1 := - by1; bx := ax + bx1*calpha - by1*salpha; by := ay + bx1*salpha + by1*calpha;
fi2 := Atan2(bx - ax,by - ay); if fi2 > 2*pi then fi2 := fi2 2*pi;
fi3 := Atan2(bx - cx,by - cy); if fi3 > 2*pi then fi3 := fi3 -
2*pi;
if fi2 < 0 then fi2 := fi2 + 2*pi; if fi3 < 0 then fi3 := fi3 + 2*pi; a11 := - l2*sin(fi2); a12 := l3*sin(fi3); a21 := l2*cos(fi2); a22 := - l3*cos(fi3); znam := a11*a22 - a21*a12; b1 := vcx - vax; b2 := vcy - vay; omega2 := (b1*a22 - b2*a12)/znam; omega3 := (a11*b2 - a21*b1)/znam;
b1 := acx - aax + a21*sqr(omega2) + a22*sqr(omega3); b2 := acy - aay - a11*sqr(omega2) - a12*sqr(omega3); epsi2 := (b1*a22 - b2*a12)/znam; epsi3 := (a11*b2 - a21*b1)/znam;
End; { Diada1v }
Procedure Diada2v; Var
x1,y1,x2,bx,by : real; Begin { Diada2v} b1 := ax - cx; b2 := ay - cy; x1 := b1*cos(fi3) + b2*sin(fi3); y1 := b2*cos(fi3) - b1*sin(fi3); x2 := sqrt(sqr(l2) - sqr(y1 - l3)); l4 := x1 + x2;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.