#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
void main()
{
int x1,y1,x2,y2,r,xr,yr,sa,ea;
int gd=DETECT,gm;
initgraph(&gd,&gm," ");
while(1)
{
clrscr();
cleardevice();
printf("Basic drawings using graphics :\n\n");
printf("1.Line\n2.Rectangle\n3.Circle\n4.Ellipse\n5.Arc\n6.Exit");
printf("\n\nEnter your choice");
switch(getche())
{
case '1': //Line
clrscr();
cleardevice();
printf("Enter (x1,y1) and (x2,y2) : ");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
cleardevice();
line(x1,y1,x2,y2);
break;
case '2': //Rectangle
clrscr();
cleardevice();
printf("Enter (x1,y1) and (x2,y2) : ");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
cleardevice();
rectangle(x1,y1,x2,y2);
break;
case '3': //Circle
clrscr();
cleardevice();
printf("Enter (x,y) and (radius): ");
scanf("%d%d%d",&x1,&y1,&r);
cleardevice();
circle(x1,y1,r);
break;
case '4': //Ellipse
clrscr();
cleardevice();
printf("Enter (x1,y1),(start angle,end angle) and (xradius,yradius) : ");
scanf("%d%d%d%d%d%d",&x1,&y1,&sa,&ea,&xr,&yr);
cleardevice();
ellipse(x1,y1,sa,ea,xr,yr);
break;
case '5': //Arc
clrscr();
cleardevice();
printf("Enter (x1,y1),(start angle,end angle) and (radius) : ");
scanf("%d%d%d%d%d",&x1,&y1,&sa,&ea,&r);
cleardevice();
arc(x1,y1,sa,ea,r);
break;
case '6': //Exit
closegraph();
exit(1);
}
getch();
}
}
Here i have used fillpoly function to draw the object body and used fillellipse function to draw tier. animation is done by looping through the objects x & y position until user hits a key. Keypress event is achived by using kbhit function. Smoothness of animation is controlled by delay function. Change the delay values to change the animation speed Source: #include<stdio.h> #include<conio.h> #include<graphics.h> #include<dos.h> void main() { int gd=DETECT,gm,i=-300,j; int poly[16]={100,100,250,100,250,50,300,50,325,90,325,140,100,140,100,100}; int tpoly[16]={100,100,250,100,250,50,300,50,325,90,325,140,100,140,100,100}; initgraph(&gd,&gm,""); getch(); while(!kbhit()) { for(j=0;j<16;j+=2) { poly[j]=tpoly[j]+i; } fillpoly(8,poly); setfillstyle(5,7); bar(275+i,60,295+i,85); setfillstyle(5,8); fillellipse(140+i,140,20,20); fillellipse(280+i,140,20,20); setfillstyle(1,0); fillellipse(140+i,140,10,10); fillellipse(280+i,140,10...
Comments