Wednesday, March 12, 2014

Butterfly animation in C graphics

 #include<graphics.h>
#include<conio.h>
#include<stdlib.h>
char *buff1,*buff2;
void main()
{
    int gd=DETECT,gm;
    void *buff;
    int area1,area2,x,y,inc_x=10,inc_y=10;

    initgraph(&gd,&gm,"c:\\tc\\bgi");

    //  structure of butterfly
     ellipse(240,80,115,65,10,40);//body

     circle(240,40,10);   // face
     circle(240,30,2);    // lips
     circle(235,37,2);   // left eye
     circle(245,37,2);   // right eye

     ellipse(215,40,15,100,20,40);    //antenna
     ellipse(265,40,85,165,20,40);    //antenna

     ellipse(160,90,270,0,80,25);   //left wing
     ellipse(160,60,0,90,80,25);

     ellipse(160,75,270,90,15,40);   // wing border
     ellipse(320,75,90,270,15,40);   //wing border

     ellipse(320,90,180,270,80,25); //  right wing
     ellipse(320,60,90,180,80,25);

     setfillstyle(SOLID_FILL,YELLOW);
     floodfill(240,40,WHITE);
     setfillstyle(SOLID_FILL,BLUE);
     floodfill(200,80,WHITE);
     floodfill(290,60,WHITE);
     setfillstyle(SOLID_FILL,RED);
     floodfill(240,80,WHITE);
     setfillstyle(SOLID_FILL,GREEN);
     floodfill(240,110,WHITE);
     //Store first image action
     area1=imagesize(160,0,320,120);
     buff1=malloc(area1);

     getimage(160,0,320,120,buff1);
     clearviewport();
     // second image creation part
     ellipse(240,80,120,60,10,40);

     circle(240,40,10);
     circle(240,30,2);
     circle(235,37,2);
     circle(245,37,2);

     ellipse(215,40,15,100,20,30);
     ellipse(265,40,85,165,20,30);

     ellipse(320,90,180,260,80,40);
     ellipse(320,60,100,180,80,40);
     ellipse(310,75,115,245,15,60);

     ellipse(160,90,280,0,80,40); //  left
     ellipse(160,60,0,80,80,40);
     ellipse(170,75,295,65,15,60);
     setfillstyle(SOLID_FILL,YELLOW);
     floodfill(240,40,WHITE);
     setfillstyle(SOLID_FILL,BLUE);
     floodfill(200,80,WHITE);
     floodfill(290,60,WHITE);
     setfillstyle(SOLID_FILL,RED);
     floodfill(240,80,WHITE);
     setfillstyle(SOLID_FILL,GREEN);
     floodfill(240,110,WHITE);

     //Store second image    (WINGS BEHIND)
     area2=imagesize(160,0,320,140);
     buff2=malloc(area2);
     getimage(160,0,320,140,buff2);
     clearviewport();

     x=10;y=1;
     while(!kbhit())
     {
    x += inc_x;
        if(x > getmaxx()-175)
            inc_x = -5;
        if(x < 10 )
            inc_x = 10;
        y += inc_y;
        if(y > getmaxy()-135)
            inc_y = -10;
        if(y < 10 )
            inc_y = 10;
       putimage(x,y,buff1,COPY_PUT);
       delay(500);
       clearviewport();
       putimage(x,y,buff2,COPY_PUT);
       delay(500);
       clearviewport();
      }
      getch();
      closegraph();
}

Tuesday, February 11, 2014

C graphics program to display Indian National Flag

#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>

void main()
{
int gd=DETECT,gm,i,j=0;
clrscr();
initgraph(&gd,&gm,"..\\bgi");
delay(100);
setcolor(6);
rectangle(225,125,355,155);
while(j<=30)
{
for (i=0;i<125;i++)
outtextxy(225+i,125+j,"Û");
j++;
}
delay(300);
setcolor(7);
rectangle(225,155,355,185);
j=0;
while(j<=30)
{
for (i=0;i<125;i++)
outtextxy(225+i,155+j,"Û");
j++;
}
delay(300);
setcolor(2);
rectangle(225,185,355,215);
j=0;
while(j<=30)
{
for (i=0;i<125;i++)
outtextxy(225+i,185+j,"Û");
j++;
}
delay(300);
setcolor(9);
rectangle(220,120,225,440);
j=0;
while(j<=312)
{
for (i=0;i<1;i++)
outtextxy(220+i,120+j,"Û");
j++;
}
delay(300);
rectangle(200,440,245,450);
rectangle(190,450,260,460);
rectangle(175,460,275,470);
delay(300);
circle(291,170,13);
delay(300);
line(291,158,291 ,183);
line(279,170,303,170);
line(282,160,300,180);
line(282,180,300,160);
delay(300);
settextstyle(3,0,7);
setcolor(5);
outtextxy(100,5,"INDIAN FLAG");
delay(1000);
getch();
closegraph();
}

Friday, January 24, 2014

C graphics program to display Digital Clock

#include<dos.h>
#include<conio.h>
#include<graphics.h>

void main()
{
int gd=DETECT,gm,hr,min,sec;
char x[3],y[3],z[3];
static struct time *t;
initgraph(&gd,&gm,"..\\bgi");
setcolor(3);
rectangle(150,100,500,200);
setcolor(4);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
outtextxy(257,125,":");
outtextxy(367,125,":");
settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
outtextxy(250,50,"Digital Clock");
setcolor(6);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
while( kbhit()==0)
{
setcolor(15);
gettime(t);
hr=t->ti_hour;
min= t->ti_min;
sec=t->ti_sec;
sprintf(x,"%d",hr);
outtextxy(210,125,x);
sprintf(y,"%d",min);
outtextxy(320,125,y);
sprintf(z,"%d",sec);
outtextxy(430,125,z);
delay(1000);
setcolor(0);
outtextxy(430,125,z);
outtextxy(320,125,y);
outtextxy(210,125,x);
}
closegraph();
}



Tuesday, January 21, 2014

Animated Fan Rotation

#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd= DETECT, gm,i,m;
initgraph(&gd,&gm,"..\\bgi");
while(kbhit()==0)
{
for(i=80;i>=0;i-=20)
{
setcolor(BLUE);
circle(320,240,65);
circle(320,240,67);
setfillstyle(SOLID_FILL,BLUE);
bar(310,307,330,360);
bar(290,360,350,375);
setcolor(RED);
setfillstyle(SOLID_FILL,RED);
pieslice(320,240,i,i+40,60);
pieslice(320,240,i+120,i+160,60);
pieslice(320,240,i+240,i+280,60);
setcolor(BLUE);
circle(320,240,10);
setfillstyle(SOLID_FILL,BLUE);
floodfill(320,240,BLUE);
delay(100);
setcolor(0);
setfillstyle(SOLID_FILL,0);
pieslice(320,240,i,i+40,60);
pieslice(320,240,i+120,i+160,60);
pieslice(320,240,i+240,i+280,60);
setcolor(BLUE);
circle(320,240,10);
setfillstyle(SOLID_FILL,BLACK);
floodfill(320,240,BLUE);
}
}
closegraph();
}

Analog Clock Program

#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd= DETECT, gm,i,j=96,m;
float k=90.5;
initgraph(&gd,&gm,"..\\bgi");

rectangle(210,130,430,350);
circle(320,240,105);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
setcolor(14);
outtextxy(245,85,"Analog Clock");
setfillstyle(SOLID_FILL,4);
floodfill(211,131,15);
setfillstyle(SOLID_FILL,7);
floodfill(320,240,15);
settextstyle(GOTHIC_FONT,HORIZ_DIR,1);
outtextxy(315,130,"12");
outtextxy(370,145,"1");
outtextxy(402,182,"2");
outtextxy(415,228,"3");
outtextxy(398,280,"4");
outtextxy(360,313,"5");
outtextxy(312,325,"6");
outtextxy(264,311,"7");
outtextxy(231,276,"8");
outtextxy(217,229,"9");
outtextxy(230,180,"10");
outtextxy(264,144,"11");
while(kbhit()==0)
{
k -=0.5;
j -=6;
for(i=90;i>=1;i-=6)   // required to start rotation from 12 'O clock position
{
if(kbhit()!=0) exit();
setcolor(15);
setfillstyle(SOLID_FILL,WHITE);
pieslice(320,240,i,i-1,80);
pieslice(320,240,j,j-1,65);
pieslice(320,240,k,k-1,50);
sleep(1);
setcolor(7);   // required to erase the just drawn arms
setfillstyle(SOLID_FILL,7);
pieslice(320,240,i,i-1,80);
pieslice(320,240,j,j-1,65);
pieslice(320,240,k,k-1,50);

}
for(i=359;i>=91;i -=6)
{
if(kbhit()!=0) exit();
setcolor(15);
setfillstyle(SOLID_FILL,WHITE);
pieslice(320,240,i,i-1,80);
pieslice(320,240,j,j-1,65);
pieslice(320,240,k,k-1,50);
sleep(1);
setcolor(7);
setfillstyle(SOLID_FILL,7);
pieslice(320,240,i,i-1,80);
pieslice(320,240,j,j-1,65);
pieslice(320,240,k,k-1,50);
}
if(j<=6) j=365;
if(k<=0.5) k=359;
}
}
closegraph();
}

Character Generation using BitMap

Program for character generation using bitMap

#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd= DETECT, gm,i,j,m;
char c[8][8],s[1];  // needed to delcare 's' as string inorder to use it with outtextxy()
initgraph(&gd,&gm,"..\\bgi");
printf("Enter a Character:");
scanf("%s",s);
clearviewport();
outtextxy(1,1,s);
for(i=0;i<textwidth("S");i++)      // any  capital character can be given instead of S
{
for(j=0;j<textheight("S");j++)
{
c[i][j]=getpixel(i,j);
}
}
printf("Enter the size to enlarge the inputted character \n");
scanf("%d",&m);
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
setfillstyle(SOLID_FILL,c[i][j]);
bar(100+(i*m),100+(j*m),100+(i+1)*m,100+(j+1)*m);
}
}
getch();
closegraph();
}


Sample input :
                       Enter a Character: A
                       Enter the size to enlarge the inputted character: 30