/* Se autoriza la distribucion y uso libre de este programa (freeware) */ /* Fernando Galindo Soria Cd. de Mexico */ /* curvas 19/x/96*/ #include #include #include #include #include #include void caracol(int,int,float,int); float angbx=1.,angby=1.; void main() { int x0=200,y0=200,l0=20,ang0=1,incx=0,incy=0,borra=1; int gd=DETECT,gm; initgraph(&gd,&gm,""); randomize(); angbx=1.; angby=1.; setcolor(random(15)+1); while (!kbhit()) { angbx+=incx; angby+=incy; if(random(20)==3) { x0=100+random(200);y0=100+random(100);l0=20+random(10);ang0=1+random(10);} if(random(5)==1) { angbx=random(1000)+1;angby=random(1000)+1;setcolor(random(15)+1); incx=random(10);incy=random(10); if(random(5)==2)borra*=-1;} // gotoxy(8,1);printf("%f",angbx); gotoxy(29,1);printf("%f",angby); caracol(x0,y0,l0,ang0); if((random(30)==2) || (borra==1))cleardevice(); if(random(30)==5) borra*=-1; } getch(); closegraph(); } void caracol(int x0,int y0,float l,int an) { int x1,y1; if (!kbhit()) if (l >=1 ) { x1=x0+(l*cos(an/angbx)); y1=y0+(l*sin(an/angby)); line(x0,y0,x1,y1); caracol(x1,y1,l-.1,an+35); } }