///////////////////////////////////////////////////////KADR 1 xx = 100; yy = 180; k = 0; m = 6; AB = 10*m; ww=10; ///////////////////////////////////////////////////////KADR 2 //Проц.опред.коорд. точки K по коорд. i и j и длинам ik jk function koord(i, j, k, ik, jk) { L0 = Math.sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); sina = (y[i]-y[j])/L0; cosa = (x[i]-x[j])/L0; cosb = (jk*jk+L0*L0-ik*ik)/(2*jk*L0); sinb = Math.sqrt(1-cosb*cosb); //Координаты шарнира к x[k] = x[j]+jk*(cosa*cosb-sina*sinb); y[k] = y[j]+jk*(sina*cosb+cosa*sinb); } function mt(i) { moveto(x[i], y[i]); } function pt(i) { Lineto(x[i], y[i]); } Vx = new Array(); Vy = new Array(); V = new Array(); x = new Array(); y = new Array(); k++; alf1 = k*Math.Pi/180; BC = 45*m; CD = 30*m; x[1] = 5*m; y[4] = 25*m; //положение начала отсчета y[1] = y[4]+40*m; x[4] = x[1]+50*m; x[3] = x[4]+AB*Math.Cos(alf1); y[3] = y[4]+AB*Math.Sin(-alf1); //неподв шарнир koord(1, 3, 2, CD, BC); Linestyle(3, 0x000066); sina = -(x[1]-x[2])/CD; cosa = (y[1]-y[2])/CD; L = CD/0.866/2; x5 = x[2]+L*cosa; y5 = y[2]+L*sina; x1 = x5-x[1]; y1 = y5-y[1]; y[6] = y[4]+20*m; h = y[6]-y[1]; x[7] = x[1]+h*x1/y1; y[7] = y[4]+20*m; s7._x = x[7]; s7._y = y[7]; //Шток №5 Lstok = 65*m; x[6] = x[7]+Lstok; x[5] = x[1]+x1*2; y[5] = y[1]+y1*2; mt(4); //Шатун pt(3); pt(2); pt(1); pt(5); Linestyle(5, 0x000000); s1._x = x[1]; s1._y = y[1]; s2._x = x[2]; s2._y = y[2]; s3._x = x[3]; s3._y = y[3]; s4._x = x[4]; s4._y = y[4]; hin4._x = x[4]; hin4._y = y[4]; hin1._x = x[1]; hin1._y = y[1]; ssA._x=x[4]+10;ssA._y=y[4]-2; ssb._x=x[3]+10;ssb._y=y[3]-2; ssc._x=x[2]-20;ssc._y=y[2]+2; ssd._x=x[1]-20;ssd._y=y[1]-2; sse._x=x[7]-20;sse._y=y[7]-5; Linestyle(2, 0x0000FF); mt(6); pt(7); //2 направляющие №6 plz._x = x[4]+60; plz._y = y[6]; plz2._x = x[4]+100; plz2._y = y[6]; //Муфта 4 Linestyle(10, 0x0000FF); moveto(x[7]-x1/8, y[7]-y1/8); Lineto(x[7]+x1/8, y[7]+y1/8); LT._x=100 LT._y=400 txt1='Use Left and Right Arrow to control'; if (key.isDown(39)){AB++;}; if (key.isDown(37)){AB--;}; if(AB<5){AB=5;} if(AB>10*m){AB=10*m;} Vx[3]=-ww*(y[3]-y[4]); Vy[3]=ww*(x[3]-x[4]); v[3]=Math.sqrt(Vx[3]*Vx[3]+Vy[3]*Vy[3]); //text=String(ww*(x[3]-x[4])); Ycb=Y[1]-Y[2];//{вспомогательные величины - разности координат} Xcb=X[1]-X[2]; Yab=Y[3]-Y[2]; Xba=X[2]-X[3]; Det=Yab*Xcb+Xba*Ycb; WW2=-(Vx[3]*Xcb+Vy[3]*Ycb)/Det;//{угловая скорость звена} //{скорость точки c} Vx[2]=Vx[3]+ww2*Yab; Vy[2]=Vy[3]+ww2*Xba; v[2]=Math.sqrt(Vx[2]*Vx[2]+Vy[2]*Vy[2]); text=String(V[2]); text2=String(k); ///////////////////////////////////////// KADR 3 clear() gotoAndPlay(2)