Monday, 31 March 2014

Write a c program to make animated Star

Program:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>

void g1(int,int,int);
void star(int,int,int,int);
void swapABC();
int a=1,b=2,c=3;

int main(){
 int gd=DETECT,gm;
 int i;
 initgraph(&gd,&gm,"C:\\Turboc3\\BGI");
 for(i=0; i<10; i++){
  g1(100,100,WHITE);
  swapABC();
 }
 getch();
 closegraph();
 return 0;
}

void g1(int x,int y,int color){
  int i=0;
  for(i=0; i<=60; i++){
   cleardevice();
   star(x,y,5+(i/2)*a,color+i+0);
   star(x+150,y,5+(i/2)*b,color+i+1);
   star(x+300,y,5+(i/2)*c,color+i+2);
   star(x+75,y+75,5+(i/2)*a,color+i+1);

   star(x,y+150,5+(i/2)*c,color+i+3);
   star(x+150,y+150,5+(i/2)*b,color+i+4);
   star(x+300,y+150,5+(i/2)*b,color+i+5);
   star(x+225,y+75,5+(i/2)*a,color+i+1);

   moveto(200,400);
   outtext("Twincle Twincle Little Star.");
   setcolor(color+i);
   moveto(250,420);
   outtext("-Asif (www.mrasif.in)");
   delay(50);
  }
  for(i=60; i>=0; i--){
   cleardevice();
   star(x,y,5+(i/2)*a,color+i+0);
   star(x+150,y,5+(i/2)*b,color+i+1);
   star(x+300,y,5+(i/2)*c,color+i+2);
   star(x+75,y+75,5+(i/2)*a,color+i+1);

   star(x,y+150,5+(i/2)*c,color+i+3);
   star(x+150,y+150,5+(i/2)*b,color+i+4);
   star(x+300,y+150,5+(i/2)*b,color+i+5);
   star(x+225,y+75,5+(i/2)*a,color+i+1);

   moveto(200,400);
   outtext("Twincle Twincle Little Star.");
   setcolor(color+i);
   moveto(250,420);
   outtext("-Asif (www.mrasif.in)");

   delay(50);
  }
}

void star(int x,int y,int l,int color){
 int ox=(l/2);
 int oy=(sqrt(pow(l,2)-(pow((int)(l/2),2))))/3;
 x=x-ox,y=y-oy;
 setcolor(color);
 putpixel(ox+x,oy+y,color);
 line(x,y,x+l,y);
 line(x,y,x+((int)l/2),y+(sqrt(pow(l,2)-(pow((int)(l/2),2)))));
 line(x+((int)l/2),y+(sqrt(pow(l,2)-(pow((int)(l/2),2)))),x+l,y);
 y=y+((sqrt(pow(l,2)-(pow((int)(l/2),2))))*2/3);
 line(x,y,x+l,y);
 line(x,y,x+((int)l/2),y-(sqrt(pow(l,2)-(pow((int)(l/2),2)))));
 line(x+((int)l/2),y-(sqrt(pow(l,2)-(pow((int)(l/2),2)))),x+l,y);
}
void swapABC(){
 int temp=a;
 a=b;
 b=c;
 c=temp;

}

Output:

2 comments: