#include\
<time.h> /*
01 \\
20 X
01 */
# include<math.h>
# include <stdlib.h>
# define P0(_)void _(void)
float c=CLOCKS_PER_SEC,PI,g,h,m;;
#ifdef/* -_- */_WIN32
#define/* ; */ __LOSE32
#include/**/ <windows.h> /*X_X*/
#endif /*=_Don_Yang_= (((_24Jan2001_8:18:56p_{{{{{{*/
#define P1(_)void _(int* Q,float/**/N,float O,int/**/P){
#/* ***/include <GL/.././GL/glut.h>/* *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(;i<P;i++){d=0 +( float)((PI*2*(i+1))/P);glBegin(G(QUADS
));X(S,0,.62,S,0.01,0.62,S, 0.01, .38,S,0,.38)X(S,.01,.38,S,.01,.62,R,.02
,.62,R,.02,.38)X(R,.02,.38,R ,.02,.62,R, .05,1,R,.05,0)X(R,.05,0,R,.05,1,R,.08,1
,R,.08,0)X(R,.08,0,R,.08,1,R ,.14,1,R,.14,0)X(R ,.14,0,R,.14,1,R,0.22,0.62,R,0.22,0.38)
#define I(k,u,s,A,w,a,_R,U,r ,i,K,o)X(k,u,s,A,w,a,_R,U,r,i,K,o);X(k,u,(1.0-s),A,w,(1.0-\
a),_R,U,(1.0-r),i,K,(1.0-o)) ;/*_KinouKaraKyouE_KyouKaraAsuE_BokuTachiWa_AruiteYukoYo_*/
#define W(O,m,o,i,k,a,n,e,__) U(O,m,o,i,k,a,n,e,__);U(O,m,(1.0-o),i,k,(1.-a),n,e,(1-__));
I(S,0,.38,S,.01,.38,T,.01,0,T ,0,.16)I(S,0.01,0.38,R, .02,.38,R,.05,0,T,.01,0)I(S,.22
,0,R,.22,.38,R,.3,.5,S,.3,.38 )I(S,.3,.38,R,.3,.5, S,0.36, .5,S,.36,.38)I(T,.3,0,
S,.3,.38,S,.36,.38,T,.36,.16) X(S,.36,.38,S,.36, .62,S ,.4,.62,S,.4,.38)I(
S,.36,.38,S,.4,.38,T,.4,.16,T ,.36,.16)I(T,.36 ,.16, T,.4,.16,T,.4,0,
T,.36,0)for(j=8;j<20;j++){I(T, (j/20.),0,T,( (j)/ 20.),.16,T,((j
+1)/20.),.16,T,((j+1)/20.),0)I (S,(j/20.0), .38, S,((j+1.0)/
20),.38,T,((j+1)/20.),.16,T,(j /20.),.16) X(S,( j/(20.)),
.38,S,(j/20.),.62,S,((j+1)/20. ),.62,S,( (j+1 )/20.0),
.38)}glEnd();glBegin(G(TRIANGLES ));W(T, 0,0,T ,0,.16
,T,.01,0)W(R,.14,0,R,.22,.38,S, .22,0) U((R) ,.22,
.38,R,.22,.62,R,.3,.5)W(S,0.22, 0,S, 0.30, .38,
T,.3,0)W(T,.3,0,T,.36,.16,T,.36 ,0 )glEnd ()
;b=d;}L0(End));}P0(R0){b=(float ) glutGet( 0|
GLUT_WINDOW_WIDTH);d=0.+(float) glutGet( 0|
GLUT_WINDOW_HEIGHT);glDrawBuffer (G(BACK ))
;MD(PROJECTION)glLoadIdentity(/* X */
);if(i>j){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);}
|