home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <math.h>
-
- double rnd()
- { return (random()&0xffff)/65536.0;
- }
-
- main(ac,av)
- int ac;
- char **av;
- {int i,j,n;
- double x,y,z,r,cr,d,l; float rr, r1, r2, g1, g2, b1, b2;
- if(ac!=3&&ac!=4)
- { fprintf(stderr,"Usage: %s number radious [seed]\n",
- av[0]);
- exit(1);
- }
- n=atoi(av[1]);
- sscanf(av[2]," %f \0",&rr); r = rr; /* */
- /*r=atof(av[2]); /* */
- if(ac==4)
- srandom(atoi(av[3]));
- if(n<0||r<=0)
- { fprintf(stderr,"Usage: %s number radious [seed]\n",
- av[0]);
- exit(1);
- }
- for(i=0;i<n;i++)
- { while(1)
- { x=rnd()*2-1;
- y=rnd()*2-1;
- z=rnd()*2-1;
- l=x*x+y*y+z*z;
- if(l<=(1-r)*(1-r))
- break;;
- }
- r1=rnd() * 0.01; r2=rnd()*0.8+0.1;
- g1=rnd() * 0.01; g2=rnd()*0.8+0.1;
- b1=rnd() * 0.01; b2=rnd()*0.8+0.1;
- printf("o 0 1\n");
- printf("\t%g %g %g %g\n",x,y,z+2,r);
- printf("\t%g %g %g\t%g %g %g\t0.7 0.7 0.7 0.01\n",
- r1,g1,b1,r2,g2,b2);
- }
- exit(0);
- }
-