/*--------------------------------------------------------------------------*/ /* Copyright: Antonio Castro Snurmacher (E-mail) */ /* */ /* Este fuente puede ser utilizado, distribuido, y modificado libremente */ /* pero siempre se deberá respetar la propiedad intelectual de su autor. */ /* El autor renuncia a todo tipo de beneficio económico y no se hace */ /* responsable de los posibles perjuicios derivados del uso del mismo. */ /* Toda modificación queda sujeta a las mismas condiciones de uso que el */ /* original. En caso de traducción deberá conservarse el texto original */ /* de esta cabecera y añadirse la traducción a continuación de ella. */ /*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ /* burbujas.c (1-Mayo-1998) */ /*--------------------------------------------------------------------------*/ /* Esta versión esta dedicada a su inclusión en la revista LinuxFocus */ /*--------------------------------------------------------------------------*/ /*************************************************************/ /** Compilar mediante cc burbujas.c -lm -o burbujas **/ /*************************************************************/ #include #include #include #define MAX_X 1000.0 #define MAX_Z 750.0 #define MAX_BALLS 2000 #define MIN_RAD 3.0 #define MAX_RAD 55.0 double PosX[MAX_BALLS]; double PosZ[MAX_BALLS]; double Rad[MAX_BALLS]; int contBall=0; int contIter=0; int i; /*****************************************/ int intento(double x, double z, int cont){ double distX2; double distZ2; double rad, cur_rad; contIter++; rad=MAX_RAD; for (i=0; i MAX_RAD) rad = MAX_RAD; if (rad >= MIN_RAD ){ Rad[contBall]=rad; PosX[contBall]=x; PosZ[contBall]=z; printf("sphere { <%4.0f, 0, %4.0f> %3.7f texture { textureBall } } //(%d/%d)\n", x, z, rad, contBall,contIter); fflush(stdout); contBall++; if ( contBall >= MAX_BALLS ){ exit(0); }else{ return(0); /** Siguiente bola **/ } } return (0); /** fallo nuevo intento **/ } /****************************************/ int r_rand(int m){ return (int) ( (double)m * rand()/(RAND_MAX+1.0)); } /****************************************/ int main (){ int X, Z; for(;;){ X=r_rand(MAX_X); Z=r_rand(MAX_Z); X -= MAX_X/2; Z -= MAX_Z/2; intento(X, Z, contBall); } }
mirror server hosted at Truenetwork, Russian Federation.