#include<stdio.h> #include<GRAPHICS.h> #include<math.h> double L1=50; double L2=70; double radian(int val) { return (M_PI*val)/180; } void rotate(int x_c,int y_c,int a,int b,double *x_p,double *y_p,int degree) { double rad=radian(degree); *x_p=((a-x_c)*cos(rad))-((b-y_c)*sin(rad))+x_c; *y_p=((a-x_c)*sin(rad))+((b-y_c)*cos(rad))+y_c; } int main() { double lx[3],ly[3],a,b,c,d,e,f; int degree1,degree2; /* request auto detection */ int gdriver = DETECT, gmode, errorcode; /* initialize graphics mode */ initgraph(&gdriver, &gmode, "C:\\TurboC3\\BGI"); lx[0]=getmaxx()/2; ly[0]=getmaxy()/2; lx[1]=lx[0]+L1; ly[1]=ly[0]; lx[2]=lx[1]+L2; ly[2]=ly[0]; degree1=0,degree2=0; setfillstyle(SOLID_FILL, RED); c=lx[1]; d=ly[1]; e=lx[2]; f=ly[2]; while(degree1<=180) { setcolor(BLUE); line(lx[0],ly[0],c,d); a=lx[2]; b=ly[2]; while(degree2<=195) { setcolor(MAGENTA); line(c,d,a,b); setcolor(RED); circle(a,b,3); floodfill(a,b,RED); rotate(c,d,e,f,&a,&b,(0-degree2)); degree2+=15; delay(500); } degree1+=15; rotate(lx[0],ly[0],lx[1],ly[1],&c,&d,(0-degree1)); rotate(lx[0],ly[0],lx[2],ly[2],&e,&f,(0-degree1)); degree2=0; } getch(); return 0; }
Robot Work Envelope According to Robot Arm Configuration
Subscribe to:
Posts (Atom)
No comments:
Post a Comment