Wednesday, 19 February 2014

MOVING CAR



/***************************************************************************/


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

main()
{
   int i,gd=DETECT,gm;

   initgraph(&gd,&gm,"");

   for(i=0;!kbhit();i=i+10)
   {
      rectangle(i,300,100+i,400);
      rectangle(100+i,350,150+i,400);
      circle(25+i,410,10);
      circle(125+i,410,10);
      line(0,420,639,420);
      delay(50);

      if(i==420)
                 i=0;
      clearviewport();
   }

   getch();
   closegraph();
   return 0;
}
/****************************************************************************/


DDA ALGORITHM FOR DRAWING LINE



/************************************************************************/
#include<stdio.h>
#include<conio.h>
#include<graphics.h>

int main()
{
                int x1,y1,x2,y2,i,xincr,yincr,dx,dy,steps,x;
                float m;
                int gdriver=DETECT,gmode;
                initgraph(&gdriver,&gmode,"");

                printf("enter the coordinates of first point : ");
                scanf("%d%d",&x1,&y1);

                printf("enter the coordinates of second point : ");
                scanf("%d%d",&x2,&y2);

                dx=x2-x1;
                dy=y2-y1;

                if(abs(dx)>abs(dy))
                                steps=dx;
                else
                                steps=dy;

                xincr=dx/steps;
                yincr=dy/steps;


                for(i=0;i<steps;i++)
                {
                                x1+=xincr;
                                y1+=yincr;
                                putpixel(x1,y1,WHITE);
                }



                getch();
                return 0;
}
/**************************************************************************/

MID POINT ALGORITHM FOR DRAWING CIRCLE



 /****************************************************************************/ 
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<graphics.h>
void drawCircle(int,int,int);
int main()
{
                int x=300,y=300,r=100,i,j;
                int gmode,gdriver=DETECT;
                initgraph(&gdri
                driver,&gmode,"");
                //circle(x,y,r);


                drawCircle(x,y,r);

                getch();
                return 0;
}

void drawCircle(int x0,int y0,int r)
{
                int x=r,y=0;
                int radiusError=1-x;

                while(x>=y)
                {
                                putpixel(x+x0,y+y0,WHITE);
                                putpixel(y+x0,x+y0,WHITE);
                                putpixel(-x+x0,y+y0,WHITE);
                                putpixel(-y+x0,x+y0,WHITE);
                                putpixel(-x+x0,-y+y0,WHITE);
                                putpixel(-y+x0,-x+y0,WHITE);
                                putpixel(x+x0,-y+y0,WHITE);
                                putpixel(y+x0,-x+y0,WHITE);

                                y++;
                                if(radiusError<0)
                                                radiusError+=2*y+1;
                                else
                                {
                                                x--;
                                                radiusError+=2*(y-x+1);
                                }
                }
}

 /****************************************************************************/

WEIGHING BALANCE



/*************************************************************************/
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<graphics.h>

int returnsingledigit(int);
void drawContainer(int,int,int);
int main()
{
                int gmode,gdriver=DETECT;
                int w1,w2;
                initgraph(&gdriver,&gmode,"");

                printf("enter weight 1 : ");
                scanf("%d",&w1);

                printf("enter weight 2 : ");
                scanf("%d",&w2);

                line(320,50,320,100);

                //printf("%d%d",w1,w2);
                if(w1>w2)
                {
                                line(210,100+returnsingledigit(w1-w2)*10,430,100-returnsingledigit(w1-w2)*10);
                                drawContainer(210,100+returnsingledigit(w1-w2)*10,w1);
                                drawContainer(430,100-returnsingledigit(w1-w2)*10,w2);
                }
                else if(w2>w1)
                {
                                line(210,100-returnsingledigit(w2-w1)*10,430,100+returnsingledigit(w2-w1)*10);
                                drawContainer(210,100-returnsingledigit(w2-w1)*10,w1);
                                drawContainer(430,100+returnsingledigit(w2-w1)*10,w2);
                }
                else
                {
                                line(210,100,430,100);
                                drawContainer(210,100,w1);
                                drawContainer(430,100,w2);
                }

                getch();
                return 0;
}

void drawContainer(int x,int y,int data)
{
                line(x,y,x,y+50);
                rectangle(x-25,y+50,x+25,y+100);
}


int returnsingledigit(int n)
{
                int count=0,i,cn,result;
                cn=n;
                while(cn)
                {
                                count++;
                                cn/=10;
                }
                //printf("%d",count);
                for(i=0;i<count-1;i++)
                                n/=10;
                return n;
}

/*************************************************************************/