sprintf(buffer,"fi12= %.1f°",fi12);
outtextxy(538,230,buffer);
sprintf(buffer,"fi13= %.1f°",fi13);
outtextxy(538,245,buffer);
sprintf(buffer,"fi14= %.1f°",fi14);
outtextxy(538,260,buffer);
sprintf(buffer,"fi15= %.1f°",fi15);
outtextxy(538,275,buffer);
sprintf(buffer,"fi16= %.1f°",fi16);
outtextxy(538,290,buffer);
sprintf(buffer,"fi17= %.1f°",fi17);
outtextxy(538,305,buffer);
sprintf(buffer,"fi18= %.1f°",fi18);
outtextxy(538,320,buffer);
sprintf(buffer,"fi19= %.1f°",fi19);
outtextxy(538,335,buffer);
setvisualpage(a_p);
delay(67);
if(v_p==0) v_p=1; else v_p=0;
if(a_p==0) a_p=1; else a_p=0;
if(fi>=360) fi=0;
}
getch();
closegraph();
return 0;
}
traek1()
{
float fi;
float N,M,Xmin=+32768,Xmax=-32768,Ymin=+32768,Ymax=-32768;
int i=0;
for(fi=0;fi<=360;fi+=1)
{
raschet(fi);
if(Xq<Xmin) Xmin=Xq;
if(Xq>Xmax) Xmax=Xq;
if(Yq<Ymin) Ymin=Yq;
if(Yq>Ymax) Ymax=Yq;
}
for(fi=0;fi<=360;fi++)
{
raschet(fi);
if(i==1){setcolor(4);line(n*N+Xo1,n*(-M)+Yo1,n*Xq+Xo1,n*(-Yq)+Yo1);}
N=Xq;M=Yq;i=1;
}
setcolor(14);
line(n*Xmin+Xo1,n*(-(Ymin+Ymax)/2)+Yo1,n*Xmax+Xo1,n*(-(Ymin+Ymax)/2)+Yo1);
line(n*(Xmin+Xmax)/2+Xo1,n*(-Ymax)+Yo1,n*(Xmin+Xmax)/2+Xo1,n*(-Ymin)+Yo1);
fi=0;
return 0;
}
void raschet(float fi)
{
Xa1=O1A1*cos(fi*RAD);
Ya1=O1A1*sin(fi*RAD);
Xa2=Xo5+O5A2*cos((87-fi)*RAD);
Ya2=Yo5+O5A2*sin((87-fi)*RAD);
Xf=O1F*cos((fi+gam3)*RAD);
Yf=O1F*sin((fi+gam3)*RAD);
A=pow(Xf-Xo4,2)+pow(Yf-Yo4,2)+KO4*KO4-FK*FK;
B=2*(Xf-Xo4)*KO4;
C=2*(Yf-Yo4)*KO4;
cosfi3=(A*B-C*sqrt(B*B+C*C-A*A))/(B*B+C*C);
sinfi3=(A*C+B*sqrt(B*B+C*C-A*A))/(B*B+C*C);
if(cosfi3>=0 && sinfi3>=0) fi3=180/M_PI*acos(cosfi3);
if(cosfi3<0 && sinfi3>0) fi3=180/M_PI*acos(cosfi3);
if(cosfi3<0 && sinfi3<0) fi3=180+fabs(180/M_PI*asin(sinfi3));
if(cosfi3>0 && sinfi3<0) fi3=360-180/M_PI*acos(cosfi3);
cosfi2=(KO4*cosfi3-(Xf-Xo4))/FK;
sinfi2=(KO4*sinfi3-(Yf-Yo4))/FK;
if(cosfi2>=0 && sinfi2>=0) fi2=180/M_PI*acos(cosfi2);
if(cosfi2<0 && sinfi2>0) fi2=180/M_PI*acos(cosfi2);
if(cosfi2<0 && sinfi2<0) fi2=180+fabs(180/M_PI*asin(sinfi2));
if(cosfi2>0 && sinfi2<0) fi2=360-180/M_PI*acos(cosfi2);
Xm=Xo4+O4M*(cosfi3*cos(gam2*RAD)-sinfi3*sin(gam2*RAD));
Ym=Yo4+O4M*(sinfi3*cos(gam2*RAD)+sin(gam2*RAD)*cosfi3);
Xk=Xf+FK*cosfi2;
Yk=Yf+FK*sinfi2;
Xd=Xo2+O2D*cos((90+beta)*RAD);
Yd=Yo2+O2D*sin((90+beta)*RAD);
A2=pow(Xa1-Xd,2)+pow(Ya1-Yd,2)+DB*DB-A1B*A1B;
B2=2*(Xa1-Xd)*DB;
C2=2*(Ya1-Yd)*DB;
cosfi5=(A2*B2+C2*sqrt(B2*B2+C2*C2-A2*A2))/(B2*B2+C2*C2);
sinfi5=(A2*C2-B2*sqrt(B2*B2+C2*C2-A2*A2))/(B2*B2+C2*C2);
if(cosfi5>=0 && sinfi5>=0) fi5=180/M_PI*acos(cosfi5);
if(cosfi5<0 && sinfi5>0) fi5=180/M_PI*acos(cosfi5);
if(cosfi5<0 && sinfi5<0) fi5=180+fabs(180/M_PI*asin(sinfi5));
if(cosfi5>0 && sinfi5<0) fi5=360-180/M_PI*acos(cosfi5);
cosfi4=(DB*cosfi5-(Xa1-Xd))/A1B;
sinfi4=(DB*sinfi5-(Ya1-Yd))/A1B;
if(cosfi4>=0 && sinfi4>=0) fi4=180/M_PI*acos(cosfi4);
if(cosfi4<0 && sinfi4>0) fi4=180/M_PI*acos(cosfi4);
if(cosfi4<0 && sinfi4<0) fi4=180+fabs(180/M_PI*asin(sinfi4));
if(cosfi4>0 && sinfi4<0) fi4=360-180/M_PI*acos(cosfi4);
Xb=Xa1+A1B*cosfi4;
Yb=Ya1+A1B*sinfi4;
A3=pow(Xb-Xo3,2)+pow(Yb-Yo3,2)+O3C*O3C-BC*BC;
B3=2*(Xb-Xo3)*O3C;
C3=2*(Yb-Yo3)*O3C;
cosfi7=(A3*B3-C3*sqrt(B3*B3+C3*C3-A3*A3))/(B3*B3+C3*C3);
sinfi7=(A3*C3+B3*sqrt(B3*B3+C3*C3-A3*A3))/(B3*B3+C3*C3);
if(cosfi7>=0 && sinfi7>=0) fi7=180/M_PI*acos(cosfi7);
if(cosfi7<0 && sinfi7>0) fi7=180/M_PI*acos(cosfi7);
if(cosfi7<0 && sinfi7<0) fi7=180+fabs(180/M_PI*asin(sinfi7));
if(cosfi7>0 && sinfi7<0) fi7=360-180/M_PI*acos(cosfi7);
cosfi6=(O3C*cosfi7-(Xb-Xo3))/BC;
sinfi6=(O3C*sinfi7-(Yb-Yo3))/BC;
if(cosfi6>=0 && sinfi6>=0) fi6=180/M_PI*acos(cosfi6);
if(cosfi6<0 && sinfi6>0) fi6=180/M_PI*acos(cosfi6);
if(cosfi6<0 && sinfi6<0) fi6=180+fabs(180/M_PI*asin(sinfi6));
if(cosfi6>0 && sinfi6<0) fi6=360-180/M_PI*acos(cosfi6);
Xc=Xo3+O3C*cosfi7;
Yc=Yo3+O3C*sinfi7;
Xe=Xo3+O3E*(cosfi7*cos(gam1*RAD)-sinfi7*sin(gam1*RAD));
Ye=Yo3+O3E*(sinfi7*cos(gam1*RAD)+sin(gam1*RAD)*cosfi7);
A4=pow(Xe-Xm,2)+pow(Ye-Ym,2)+MN*MN-EN*EN;
B4=2*(Xe-Xm)*MN;
C4=2*(Ye-Ym)*MN;
cosfi9=(A4*B4-C4*sqrt(B4*B4+C4*C4-A4*A4))/(B4*B4+C4*C4);
sinfi9=(A4*C4+B4*sqrt(B4*B4+C4*C4-A4*A4))/(B4*B4+C4*C4);
if(cosfi9>=0 && sinfi9>=0) fi9=180/M_PI*acos(cosfi9);
if(cosfi9<0 && sinfi9>0) fi9=180/M_PI*acos(cosfi9);
if(cosfi9<0 && sinfi9<0) fi9=180+fabs(180/M_PI*asin(sinfi9));
if(cosfi9>0 && sinfi9<0) fi9=360-180/M_PI*acos(cosfi9);
cosfi8=(MN*cosfi9-(Xe-Xm))/EN;
sinfi8=(MN*sinfi9-(Ye-Ym))/EN;
if(cosfi8>=0 && sinfi8>=0) fi8=180/M_PI*acos(cosfi8);
if(cosfi8<0 && sinfi8>0) fi8=180/M_PI*acos(cosfi8);
if(cosfi8<0 && sinfi8<0) fi8=180+fabs(180/M_PI*asin(sinfi8));
if(cosfi8>0 && sinfi8<0) fi8=360-180/M_PI*acos(cosfi8);
Xn=Xe+EN*cosfi8;
Yn=Ye+EN*sinfi8;
Xp=Xe+EP*(cosfi8*EP/EN-sinfi8*PN/EN);
Yp=Ye+EP*(sinfi8*EP/EN+cosfi8*PN/EN);
Xz=Xe+xq*(cosfi8*EP/EN-sinfi8*PN/EN);
Yz=Ye+xq*(sinfi8*EP/EN+cosfi8*PN/EN);
Xq=Xz+yq*((cosfi8*EP/EN-sinfi8*PN/EN)*cos(pi/2)-
sin(pi/2)*(sinfi8*EP/EN+cosfi8*PN/EN));
Yq=Yz+yq*((sinfi8*EP/EN+cosfi8*PN/EN)*cos(pi/2)+sin(pi/2)*(cosfi8*EP/EN-
sinfi8*PN/EN));
A5=pow(Xc-Xo6,2)+pow(Yc-Yo6,2)+O6R*O6R-CR*CR;
B5=2*(Xc-Xo6)*O6R;
C5=2*(Yc-Yo6)*O6R;
cosfi11=(A5*B5-C5*sqrt(B5*B5+C5*C5-A5*A5))/(B5*B5+C5*C5);
sinfi11=(A5*C5+B5*sqrt(B5*B5+C5*C5-A5*A5))/(B5*B5+C5*C5);
if(cosfi11>=0 && sinfi11>=0) fi11=180/M_PI*acos(cosfi11);
if(cosfi11<0 && sinfi11>0) fi11=180/M_PI*acos(cosfi11);
if(cosfi11<0 && sinfi11<0) fi11=180+fabs(180/M_PI*asin(sinfi11));
if(cosfi11>0 && sinfi11<0) fi11=360-180/M_PI*acos(cosfi11);
cosfi10=(O6R*cosfi11-(Xc-Xo6))/CR;
sinfi10=(O6R*sinfi11-(Yc-Yo6))/CR;
if(cosfi10>=0 && sinfi10>=0) fi10=180/M_PI*acos(cosfi10);
if(cosfi10<0 && sinfi10>0) fi10=180/M_PI*acos(cosfi10);
if(cosfi10<0 && sinfi10<0) fi10=180+fabs(180/M_PI*asin(sinfi10));
if(cosfi10>0 && sinfi10<0) fi10=360-180/M_PI*acos(cosfi10);
Xr=Xc+CR*cosfi10;
Yr=Yc+CR*sinfi10;
Xs=Xo6+O6S*(cosfi11*cos(gam4*RAD)-sinfi11*sin(gam4*RAD));
Ys=Yo6+O6S*(sinfi11*cos(gam4*RAD)+sin(gam4*RAD)*cosfi11);
A6=pow(Xs-Xo8,2)+pow(Ys-Yo8,2)+O8V*O8V-SV*SV;
B6=2*(Xs-Xo8)*O8V;
C6=2*(Ys-Yo8)*O8V;
cosfi13=(A6*B6-C6*sqrt(B6*B6+C6*C6-A6*A6))/(B6*B6+C6*C6);
sinfi13=(A6*C6+B6*sqrt(B6*B6+C6*C6-A6*A6))/(B6*B6+C6*C6);
if(cosfi13>=0 && sinfi13>=0) fi13=180/M_PI*acos(cosfi13);
if(cosfi13<0 && sinfi13>0) fi13=180/M_PI*acos(cosfi13);
if(cosfi13<0 && sinfi13<0) fi13=180+fabs(180/M_PI*asin(sinfi13));
if(cosfi13>0 && sinfi13<0) fi13=360-180/M_PI*acos(cosfi13);
cosfi12=(O8V*cosfi13-(Xs-Xo8))/SV;
sinfi12=(O8V*sinfi13-(Ys-Yo8))/SV;
if(cosfi12>=0 && sinfi12>=0) fi12=180/M_PI*acos(cosfi12);
if(cosfi12<0 && sinfi12>0) fi12=180/M_PI*acos(cosfi12);
if(cosfi12<0 && sinfi12<0) fi12=180+fabs(180/M_PI*asin(sinfi12));
if(cosfi12>0 && sinfi12<0) fi12=360-180/M_PI*acos(cosfi12);
Xv=Xs+SV*cosfi12;
Yv=Ys+SV*sinfi12;
Xw=Xo8-O8W*cosfi13;
Yw=Yo8-O8W*sinfi13;
A7=pow(Xa2-Xo7,2)+pow(Ya2-Yo7,2)+O7H*O7H-A2H*A2H;
B7=2*(Xa2-Xo7)*O7H;
C7=2*(Ya2-Yo7)*O7H;
cosfi15=(A7*B7-C7*sqrt(B7*B7+C7*C7-A7*A7))/(B7*B7+C7*C7);
sinfi15=(A7*C7+B7*sqrt(B7*B7+C7*C7-A7*A7))/(B7*B7+C7*C7);
if(cosfi15>=0 && sinfi15>=0) fi15=180/M_PI*acos(cosfi15);
if(cosfi15<0 && sinfi15>0) fi15=180/M_PI*acos(cosfi15);
if(cosfi15<0 && sinfi15<0) fi15=180+fabs(180/M_PI*asin(sinfi15));
if(cosfi15>0 && sinfi15<0) fi15=360-180/M_PI*acos(cosfi15);
cosfi14=(O7H*cosfi15-(Xa2-Xo7))/A2H;
sinfi14=(O7H*sinfi15-(Ya2-Yo7))/A2H;
if(cosfi14>=0 && sinfi14>=0) fi14=180/M_PI*acos(cosfi14);
if(cosfi14<0 && sinfi14>0) fi14=180/M_PI*acos(cosfi14);
if(cosfi14<0 && sinfi14<0) fi14=180+fabs(180/M_PI*asin(sinfi14));
if(cosfi14>0 && sinfi14<0) fi14=360-180/M_PI*acos(cosfi14);
Xh=Xa2+A2H*cosfi14;
Yh=Ya2+A2H*sinfi14;
Xi=Xo7-O7I*cosfi15;
Yi=Yo7-O7I*sinfi15;
A8=pow(Xw-Xx,2)+pow(Yw-Yx,2)+LX*LX-WL*WL;
B8=2*(Xw-Xx)*LX;
C8=2*(Yw-Yx)*LX;
cosfi17=(A8*B8-C8*sqrt(B8*B8+C8*C8-A8*A8))/(B8*B8+C8*C8);
sinfi17=(A8*C8+B8*sqrt(B8*B8+C8*C8-A8*A8))/(B8*B8+C8*C8);
if(cosfi17>=0 && sinfi17>=0) fi17=180/M_PI*acos(cosfi17);
if(cosfi17<0 && sinfi17>0) fi17=180/M_PI*acos(cosfi17);
if(cosfi17<0 && sinfi17<0) fi17=180+fabs(180/M_PI*asin(sinfi17));
if(cosfi17>0 && sinfi17<0) fi17=360-180/M_PI*acos(cosfi17);
cosfi16=(LX*cosfi17-(Xw-Xx))/WL;
sinfi16=(LX*sinfi17-(Yw-Yx))/WL;
if(cosfi16>=0 && sinfi16>=0) fi16=180/M_PI*acos(cosfi16);
if(cosfi16<0 && sinfi16>0) fi16=180/M_PI*acos(cosfi16);
if(cosfi16<0 && sinfi16<0) fi16=180+fabs(180/M_PI*asin(sinfi16));
if(cosfi16>0 && sinfi16<0) fi16=360-180/M_PI*acos(cosfi16);
Xl=Xw+WL*cosfi16;
Yl=Yw+WL*sinfi16;
A9=pow(Xi-Xu,2)+pow(Yi-Yu,2)+JU*JU-IJ*IJ;
B9=2*(Xi-Xu)*JU;
C9=2*(Yi-Yu)*JU;
cosfi19=(A9*B9+C9*sqrt(B9*B9+C9*C9-A9*A9))/(B9*B9+C9*C9);
sinfi19=(A9*C9-B9*sqrt(B9*B9+C9*C9-A9*A9))/(B9*B9+C9*C9);
if(cosfi19>=0 && sinfi19>=0) fi19=180/M_PI*acos(cosfi19);
if(cosfi19<0 && sinfi19>0) fi19=180/M_PI*acos(cosfi19);
if(cosfi19<0 && sinfi19<0) fi19=180+fabs(180/M_PI*asin(sinfi19));
if(cosfi19>0 && sinfi19<0) fi19=360-180/M_PI*acos(cosfi19);
cosfi18=(JU*cosfi19-(Xi-Xu))/IJ;
sinfi18=(JU*sinfi19-(Yi-Yu))/IJ;
if(cosfi18>=0 && sinfi18>=0) fi18=180/M_PI*acos(cosfi18);
if(cosfi18<0 && sinfi18>0) fi18=180/M_PI*acos(cosfi18);
if(cosfi18<0 && sinfi18<0) fi18=180+fabs(180/M_PI*asin(sinfi18));
if(cosfi18>0 && sinfi18<0) fi18=360-180/M_PI*acos(cosfi18);
Xj=Xi+IJ*cosfi18;
Yj=Yi+IJ*sinfi18;
Xy=Xu+UY*(cosfi19*cos(gam5*RAD)-sinfi19*sin(gam5*RAD));
Yy=Yu+UY*(sinfi19*cos(gam5*RAD)+sin(gam5*RAD)*cosfi19);
q=sqrt(pow(Xl-Xy,2)+pow(Yl-Yy,2));
L1y=sqrt(q*q-LL1*LL1);
A10=LL1;
B10=L1y;
C10=Yl-Yy;
sinfi20=(-B10*C10-A10*sqrt(A10*A10+B10*B10-C10*C10))/(A10*A10+B10*B10);
cosfi20=(-A10*C10+B10*sqrt(A10*A10+B10*B10-C10*C10))/(A10*A10+B10*B10);
if(cosfi20>=0 && sinfi20>=0) fi20=180/M_PI*acos(cosfi20);
if(cosfi20<0 && sinfi20>0) fi20=180/M_PI*acos(cosfi20);
if(cosfi20<0 && sinfi20<0) fi20=180+fabs(180/M_PI*asin(sinfi20));
if(cosfi20>0 && sinfi20<0) fi20=360-180/M_PI*acos(cosfi20);
Xl1=Xl+LL1*cos((fi20+QQ)*RAD);
Yl1=Yl+LL1*sin((fi20+QQ)*RAD);
Xzb=Xl1+L1zb*cos(fi20*RAD);
Yzb=Yl1+L1zb*sin(fi20*RAD);
Xqb=Xzb+ZQb*cos((fi20-QQ)*RAD);
Yqb=Yzb+ZQb*sin((fi20-QQ)*RAD);
RRR=sqrt(pow(Xl-Xqb,2)+pow(Yl-Yqb,2));
return;
}
void elips()
{
float fi;
for(fi=0;fi<=360;fi++)
{
raschet(fi);
putpixel(n*Xq+Xo1,DEK*(n*(-Yq)+Yo1),4);
putpixel(n*Xqb+Xo1,DEK*(n*(-Yqb)+Yo1),4);
}
return;
}
void draw(float fi)
{
/*Стойки*/
stoyka(Xo1,Yo1);
stoyka(n*Xo2+Xo1,n*(-Yo2)+Yo1);
stoyka(n*Xo3+Xo1,n*(-Yo3)+Yo1);
stoyka(n*Xo4+Xo1,n*(-Yo4)+Yo1);
stoyka(n*Xd+Xo1,n*(-Yd)+Yo1);
stoyka(n*Xo6+Xo1,n*(-Yo6)+Yo1);
stoyka(n*Xo8+Xo1,n*(-Yo8)+Yo1);
stoyka(n*Xo5+Xo1,n*(-Yo5)+Yo1);
stoyka(n*Xo7+Xo1,n*(-Yo7)+Yo1);
/*Звенья*/
setlinestyle(0,1,3);
setcolor(1);
line(Xo1,DEK*Yo1,n*Xa1+Xo1,DEK*(n*(-Ya1)+Yo1));
line(Xo1,DEK*Yo1,n*Xf+Xo1,DEK*(n*(-Yf)+Yo1));
line(n*Xo4+Xo1,DEK*(n*(-Yo4)+Yo1),n*Xk+Xo1,DEK*(n*(-Yk)+Yo1));
line(n*Xf+Xo1,DEK*(n*(-Yf)+Yo1),n*Xk+Xo1,DEK*(n*(-Yk)+Yo1));
line(n*Xm+Xo1,DEK*(n*(-Ym)+Yo1),n*Xk+Xo1,DEK*(n*(-Yk)+Yo1));
line(n*Xo4+Xo1,DEK*(n*(-Yo4)+Yo1),n*Xm+Xo1,DEK*(n*(-Ym)+Yo1));
line(n*Xd+Xo1,DEK*(n*(-Yd)+Yo1),n*Xb+Xo1,DEK*(n*(-Yb)+Yo1));
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
|