/*flores que crecen en forma aleatoria 19/iv/96 llama a rutinas que cambian paleta de colores del dac 20/iv/96*/ /*Fernando Galindo Soria*/ #include #include #include #include #include #include #include "tgrafica.fgs" void mensaje(void); void arbolc(int,int,float,int,int); int ind,lt,lo,indcol,w; int huge av[32600][4]; float huge avl[32600]; float iv,inic; char paleta[48]={0,0,0, 32,20,0, 22,20,0, 12,20,0, 0,20,0, 0,30,0, 0,30,10, 0,40,0, 0,40,10, 0,40,20, 0,50,0, 0,50,10, 0,50,20, 0,50,30, 0,63,30, 0,63,40}; void main() { int gd=DETECT,gm,jv,ic,l1,i,c1; registerbgidriver(EGAVGA_driver); registerbgifont(sansserif_font); registerbgifont(small_font); initgraph(&gd,&gm,""); randomize(); mensaje(); for (i=1;i<16;i++) {escrcolordac16(i,paleta[c1],paleta[c1+1],paleta[c1+2]);c1+=3;} while(!kbhit()) { for(inic=0;inic<32600;inic++)avl[inic]=0; iv=0; jv=0; cleardevice(); ind=random(5)+1; indcol=random(7)+1; //parametro que se pasa a arbolcc y marca el color central w=17+random(21); arbolc(random(620)+20,random(100)+400,random(90)+10,90,1); for(inic=0;inic32000 )inic=iv+100; l1=random(90)+10; if(random(200+(5-ind)*1330+l1*2)==3)arbolc(random(620)+20,random(99)+400,l1,90,1); jv=random(iv); ic=iv; while((avl[jv]<=ind)&&(ic>0)){jv=random(iv);ic--;} if((avl[jv]>ind)){arbolc(av[jv][0],av[jv][1],avl[jv],av[jv][2],av[jv][3]); avl[jv]=0;}} // gotoxy(1,1);printf("%f",iv); } getch(); closegraph(); } void mensaje() { setcolor(random(15)+1); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,7); outtextxy(18,50," F L O R E S"); setcolor(random(15)+1); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2); outtextxy(50,240,"by fractalstic"); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2); outtextxy(70,290,"Mexican Curious Technology"); setcolor(random(15)+1); settextstyle(SMALL_FONT,HORIZ_DIR,4); outtextxy(80,340,"Fernando Galindo Soria Cd. de Mexico, 19/iv/96"); outtextxy(80,350,"Se autoriza la distribucion y uso libre de este sistema (freeware)"); delay(2000); } void arbolc(int x0,int y0,float l,int an,int color) { int pale[]={0,6,12,10}; int x1,y1,colaux; if (l > ind ) { if(color<4) setcolor(pale[color]); else setcolor(l+11); x1=x0-(l*cos(an/57.29578)); y1=y0-(l*sin(an/57.29578)); line(x0,y0,x1,y1); if((random(7)!=3) && ((l/1.9)>ind)) {av[iv][0]=x1;av[iv][1]=y1;avl[iv]=l/1.9;av[iv][2]=an-w;av[iv++][3]=color+1;} if((random(7)!=1) && ((l/1.3)>ind)) {if((colaux=indcol)==4)colaux=color+1; av[iv][0]=x1;av[iv][1]=y1;avl[iv]=l/1.3;av[iv][2]=an;av[iv++][3]=colaux;} if((random(7)!=5) && ((l/1.9)>ind)) {av[iv][0]=x1;av[iv][1]=y1;avl[iv]=l/1.9;av[iv][2]=an+w;av[iv++][3]=color+1;} } }