#include\ /* 01 \\ 20 X 01 */ # include # include # define P0(_)void _(void) float c=CLOCKS_PER_SEC,PI,g,h,m;; #ifdef/* -_- */_WIN32 #define/* ; */ __LOSE32 #include/**/ /*X_X*/ #endif /*=_Don_Yang_= (((_24Jan2001_8:18:56p_{{{{{{*/ #define P1(_)void _(int* Q,float/**/N,float O,int/**/P){ #/* ***/include /* *float*/ int i,j,H, Y, J,L,A,B,C,D,E,F,k,l,K; float PI ,n ,o ,r ,a,b,d,s,q,p,u,v,w,x,y, z,M,e,f; /* =) */ clock_t/**/t,nt;P0(A0){if (t==nt){ nt =( t= clock())+c;}s=(!L)?(clock( )-t)/c:(L # /* */ define RE()glutPostRedisplay( );H+=01;} == 3) ?( nt-clock()) /c:1;if(s>1)s=1 ;if (s<0)s=0; # /* !*/ define/**/MD(_) ;;glMatrixMode (+( GL_##_));; if (+nt <=clock()){t=clock(); nt=c+t;if( L==1){if (M<=0)M= 999.0/H;p= # /* */define/*?*/ L0(_ )gl## _## List/*X @_@ */(/*^^*/ 1;{; }} else/* */if(L ==3){if(Y== 10 *30)Y= H;H =0;p=0;e=( rand () %K)*PI /l;f=(rand( )%K) * PI/l ;m= 64 +(rand()%k ); g= (rand( )%l) *( PI)/ K-PI/8;h=( rand()%l ) *( PI)/K- PI/8 ; }L= (L+ 1)%4; } n=(( f-e )* H) /Y+e;q =(float )( (J ++)%+ 360) ;if (p >0)p +=M;o= ((h-g)*H )/Y + g;v=m*sin( o);u =m # define F0(GK) gl ##GK## Func(/*GL FUNC */ *( cos (o))* sin (n) ;w=m *cos(o) *cos(n) +p /2;x= u/-9; y=v/ -9; z= w/-9+p/3;RE()P0 (R) {; glColor4d(1, 1,1,1);} P0(S ) {glColor4d( .5 #define/**/G( _) /* ^_^; \ X*/GL_##_ /**/ ,1,1,.9);}P0(T ){ double _[]={ .12 ,.6, .8,.6};glColor4dv(_ );} P1(CP) b=0;* Q=glGenLists(01); L0(New )*Q,G( COMPILE ));for(i=0;i<11;i++ ) {d=(PI* 2*(i+1) )/11;glColor4d(1,1,1,0.7); glVertex3d (0.,0,P); glBegin(G(TRIANGLE_STRIP)) ;; for( j=00;j<8;j ++){r=j/7.;r*=r;glColor4d(1 -r ,+1- .7*r,1-.5*r, .3);glVertex3d(N*j*cos(b),N *j* sin (b),P-O*j*j);; glVertex3d(N*j*cos(d),N*j* + sin( d),P-O*(j*j));} #define V(c,x,y)c();r=(O-N) * (y)+ N;a=(d-b)*(x)+b;\ glVertex3d(r*cos(a),r*sin(a ) ,0); /**_E!!_**_SY!!_***/ #define U(O,m,o,i,k,a,n,e,_ ) V(O,m ,o);V(i,k,a);V(n,e,_); #define X(K,A,r,u,i,k,a,n,e , _,I,o)U( K,A,r,u,i,k,a,n,e);V(_,I,o); glEnd();b=d;};glEndList();; } P1(CR)b=i=0;L0(New)*Q=glGenLists(1),G( COMPILE));for(;ij){b/=d;d=1;}else{d/=b;b= 1 ;} glClear(G(COLOR_BUFFER_BIT));r=-b* 9 ; a= d*9;glFrustum(r,-r,-a,a,5,10000) /* XX X */MD(MODELVIEW)glLoadIdentity(); /* X */ glScalef(4,4,4);gluLookAt(u,v,w,x ,y ,z ,0 ,1,0);glPushMatrix();glScalef(s,s ,s ) ;{;} glPushMatrix();glRotatef(q,0.0,0. ,1 ); /*X*/ glScalef(-1,1,1);glCallList(A);/* */ L0(Call)C)/* (((*/; glPopMatrix();glRotatef(q,0,0,-1); L0 (Call)B);glPopMatrix ();if (p>0){glTranslatef(0,0,p);L0(Call) D );L0(Call)(H&1)?E:F);}{;} glutSwapBuffers();glFlush();}void/**/K0 ( unsigned char c,int u,int v) {glFinish();exit(0);}int main(int/*XX*/ GK , char**Q){glutInit(&GK, Q);;srand (time(NULL));PI=atan2(0,-1);K=2*(l=2*(k=1 << 8 ));glutInitDisplayMode(+ GLUT_RGBA |GLUT_DOUBLE);glutInitWindowSize(640,480); {; } glutSetWindow(/*==*Ikusawa Ruriko */glutCreateWindow("Ruriko"));F0(utDisplay) R0 ); t=L=nt=H=J=0;F0(utIdle)A0); s=q= p=M=0;F0(utKeyboard)K0);F0(Blend)G(SRC_ALPHA),G(ONE ));glEnable(G(BLEND )) ;Y =3000;L0(New)D=glGenLists(1),G(COMPILE));/**/ glColor4d(.5,.8, .9 , .3);glutSolidSphere(26,14,7);L0(End));e=f=g=h =u=v=x=y=z=0;m= w= k; CR(&A,60,75,2);CR(&B,100,110,3);CR(&C,155,165 ,8);CP(&E,20,8, 28 ) ;CP(&F,18,4,30); glutMainLoop();return(0);}