/* 色変化しながら回転する星を作る */ #include #include #define WIN_SIZE 18 #define RSTEP 10 #define COLORMODE DS9_COOL int main() { int win ; int i,j,ii,icolor,color_r,color_g,color_b ; float x[5],y[5],r,theta ; win = gopen(WIN_SIZE,WIN_SIZE) ; layer(win,0,1) ; for( i=0 ; i<2*360/RSTEP ; i++ ){ gclr(win) ; r = WIN_SIZE/2.0-1 ; if( 360/RSTEP < i ) icolor=2*360/RSTEP-i ; else icolor=i ; makecolor(COLORMODE,0,360/RSTEP,icolor, &color_r,&color_g,&color_b) ; newrgbcolor(win,color_r,color_g,color_b+1) ; for( j=0 ; j<5 ; j++ ){ ii=i*RSTEP+j*72*2 ; x[j] = r+r*cos((theta=M_PI*ii/180.0)) ; y[j] = r+r*sin(theta) ; } fillpoly(win,x,y,5,0) ; copylayer(win,1,0) ; saveimg(win,0, 0,0,WIN_SIZE-1,WIN_SIZE-1, "ppmtogif",256,"img%d.gif",100+i) ; } gclose(win) ; return(0) ; }