123 Eng

Engineering the engineers™


Latest Jobs   Forum Map

 


Home
Source Codes
Engineering Colleges

Training  Reports
Seminar Reports
Placement Papers

Forums

   Computer Science / IT
   Electronics
   Electrical
   Mechanical
   Chemical
   Civil

   CAT / MBA

   GMAT / Foreign MBA
Latest Jobs

Engineering Jobs / Technical Jobs
Management Jobs

Sitemap
Terms of use

Displaying  Source Code(s)  
 

 
FACE OFF

--------------------------------------------------------------------------------

Description : A human face which smiles and cries

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include<malloc.h>
#include<dos.h>
#include <conio.h>

int xasp,yasp,gdriver = VGA, gmode=VGAMED, errorcode;

struct pos
{
int x;
int y;
};

struct face
{
int radius;
struct pos position;
int mood;
};

typedef struct face face;
face *face1;

void getposition()
{
printf("Enter X Co-ordinate:");
scanf("%d",&face1->position.x);
printf("Enter X Co-ordinate:");
scanf("%d",&face1->position.y);
}

void drawface()
{

char ch='x';
int i=0,x,y,color,r,imgsize,dif;

x=face1->position.x=320;
y=face1->position.y=180;
face1->radius=150;
color=15;
r=face1->radius;

setbkcolor(0);
getaspectratio(&xasp,&yasp);
setcolor(8);
circle(x,y,face1->radius);

setfillstyle(1,color);
floodfill(x,y,getcolor());


draweyes(face1);
drawhair(face1);
drawmouth(face1);
drawnose(face1);


}

drawnose()
{
int i,x,y,r;
x=face1->position.x;
y=face1->position.y;
r=face1->radius;
setcolor(0);

for(i=0;i<2;i++)
{
arc(x-160-i,y-r/4,340-i,10,r);
line(x-20,y+4+i,x+20,y+10+i);
}
}

draweyes()
{

int i,x1,x2,y1,y2,r;
setcolor(0);
r=face1->radius;
x1=face1->position.x-r/2;
y1=face1->position.y-r/4;
x2=face1->position.x+r/2;
y2=face1->position.y-r/4;

setaspectratio(xasp/2,yasp);
arc(x1,y1-r/8,40,140,r/4);//left eyebrow
arc(x1,y1-r/8+1,40,140,r/4);//left eyebrow
arc(x1,y1-r/8+2,40,140,r/4);//left eyebrow
setaspectratio(xasp,yasp);

for(i=0;i<2;i++)
{
arc(x1,y1+i+5,40,140,r/4); //upper left eye
arc(x1,y1-r/5+i,220,320,r/4); //lower left eye
}
circle(x1,y1-r/12,r/10);//left pupul
setfillstyle(1,0);
floodfill(x1,y1-r/10,getcolor());
setfillstyle(1,WHITE);
floodfill(x1-15,y1-r/6,getcolor());


setaspectratio(xasp/2,yasp);
arc(x2,y2-r/8,40,140,r/4);//right eyebrow
arc(x2,y2-r/8+1,40,140,r/4);//right eyebrow
arc(x2,y2-r/8+2,40,140,r/4);//right eyebrow

setaspectratio(xasp,yasp);
for(i=0;i<2;i++)
{
arc(x2,y2+i+5,40,140,r/4);//upper right eye
arc(x2,y2-r/5+i,220,320,r/4);//lower right eye
}

circle(x2,y2-r/12,r/10);//right pupil
setfillstyle(1,0);
floodfill(x2,y2-r/12,getcolor());

setfillstyle(1,WHITE);
floodfill(x2-15,y2-r/6,getcolor());
}

drawmouth()
{
int x,y,r,i;
x=face1->position.x;
y=face1->position.y+(face1->radius/1.5);
r=face1->radius;
setcolor(BLACK);

if((face1->mood)==1)
for(i=0;i<4;i++)
arc(x,y-r/2+i,220,320,r/2);//make happy
if((face1->mood)==0)
for(i=0;i<4;i++)
arc(x,y-i,40,140,r/2);//make sad
}

drawhair()
{ int x,y,r;
setcolor(8);
setaspectratio(xasp,yasp/1.5);
r=face1->radius;
x=face1->position.x-r/2;
y=face1->position.y-r/3;

arc(x,y,34,225,100);

arc(x+r,y,314,138,100);

setfillstyle(1,RED);
floodfill(x,y-70,getcolor());
floodfill(x+r,y-70,getcolor());
setaspectratio(xasp,yasp);
}

void main(void)
{
int i=0;
initgraph(&gdriver, &gmode,"");

while(!kbhit())
{
if((i%2)==1)
{
setvisualpage(1);
setactivepage(0);
clearviewport();
face1->mood=0;
drawface();
delay(1000);
}
else
{
setvisualpage(0);
setactivepage(1);
clearviewport();
face1->mood=1;
drawface();
delay(300);
}
i++;
}

getch();
closegraph();
}

 

 

Contribute content or training reports / feedback / Comments
job placement papers
All rights reserved copyright 123ENG