Saturday, August 18, 2012

Create Paint Like Application using C Programming || Simulation of paint Application Using C Code


Create Paint Like Application using C Programming ||  Simulation of paint Application Using C Code 


    #include<stdio.h>
#include<conio.h>
    #include<graphics.h>
#include<dos.h>
    #include<stdlib.h>
#include<math.h>
    #define INCR 1
#define DECR -1
    #define PREDX 1
#define PREDY 0
    

int    gm,gd=DETECT,button,x,y,ch,fg,bg,dx, dy, e, e_inc, e_noinc,j,w,h;
    union  REGS i,o;
    struct SREGS s ;
char   str[10];
    char   buffer[3000];
    int    hourglass[32]={
                    /*hourglass screen mask*/
                0x0000,0x0000,0x0000,0x0000,
                    0x8001,0xc003,0xf00f,0xfc3f,
                    0xfc3f,0xf00f,0xc003,0x8001,
                    0x0000,0x0000,0x0000,0x0000,
                    /*the mouse ptr bitmap*/
                0xffff,0x8001,0xffff,0x8001,
                    0x4002,0x2004,0x1008,0x0240,
                    0x0240,0x0810,0x2004,0x4002,
                    0x8001,0xffff,0x8001,0xffff};
    int plus[32]={
                    /*+ screen mask*/
                0xfe7f,0xfe7f,0xfe7f,0xfe7f,
                    0xfe7f,0xfe7f,0xfe7f,0x0000,
                    0x0000,0xfe7f,0xfe7f,0xfe7f,
                    0xfe7f,0xfe7f,0xfe7f,0xfe7f,
                    /*+mouseptr bitmap*/
                0x0180,0x0180,0x0180,0x0180,
                    0x0180,0x0180,0x0180,0xfe7f,
                    0xfe7f,0x0180,0x0180,0x0180,
                    0x0180,0x0180,0x0180,0x0180};
    int rubber[32]={
                    /*Eraser screen mask*/
                0x0000,0x0000,0x0000,0x0000,
                    0x0000,0x0000,0x0000,0x0000,
                    0x0000,0x0000,0x0000,0x0000,
                    0x0000,0x0000,0x0000,0x0000,
                    /*eraser bitmap*/
                0xffff,0x8001,0x8001,0x8001,
                    0x8001,0x8001,0x8001,0x8001,
                    0x8001,0x8001,0x8001,0x8001,
                    0x8001,0x8001,0x8001,0xffff};
    int hand[32]={/*hand-screenmask+pointer bitmap*/
                    0xe1ff,0xe1ff,0xe1ff,0xe1ff,
                    0xe1ff,0x0000,0x0000,0x0000,
                    0x0000,0x0000,0x0000,0x0000,
                    0x0000,0x0000,0x0000,0x0000,
                    0x1e00,0x1200,0x1200,0x2100,
                    0x13ff,0x1249,0x1249,0xf249,
                    0x9001,0x9001,0x9001,0x8001,
                    0x8001,0x8001,0xffff,0x0000};
    int pencil[32] = {
                    0x3ff ,0x5ff ,0x6ff ,0x1b7f,
                    0x1dbf,0x6edf,0xb76f,0xdbb7,
                    0xeddb,0xf6ed,0xfb76,0xfdb8,
                    0xfed9,0xff63,0xffa7,0xffcf,
    
                0xfc00,0xfa00,0xf900,0xe480,
                    0xe240,0x9120,0x4890,0x2448,
                    0x1224,0x912 ,0x489 ,0x247 ,
                    0x126 ,0x9c  ,0x58  ,0x30   };
    int bottle[32]={
                    0x0000,0xbffe,0xdffe,0xeffe,
                    0xf7fe,0xf7fe,0xf7fe,0xf7fe,
                    0xf000,0xf000,0xf000,0xf7fe,
                    0xf7fe,0xf7fe,0xf7fe,0xf000,
                    0xffff,0x4001,0x2001,0x1001,
                    0x801 ,0x801 ,0x801 ,0x801 ,
                    0xfff ,0xfff ,0xfff ,0x801 ,
                    0x801 ,0x801 ,0x801 ,0xfff };
    char  NEW[]={"Creates A New File"};
    char  OPEN[]={"Opens An Existing File"};
    char  SAVE[]={"Saves The Active File"};
    char  ABOUT[]={"Displays Information About Program"};
    char  PENCIL[]={"Draws A Free Form Line One Pixel Width"};
    char  PAINT[]={"Fills An Area With Current Drawing Colour select draw color by right click"};
    char  RECTANGLE[]={"Draws A Rectangle"};
    char  ELLIPSE[]={"Draws An Ellipse"};
    char  LINE[]={"Draws A Straight Line"};
    char  POLYLINE[]={"Draws A Polygon"};
    char  COLOUR[]={"Left  Click -> Foreground Color  Right Click -> Background Color"};
    char  ERASER[]={"Erases A Portion Of Figure"};
    char  EXIT[]={"Quits Program"};
    void initialize();
void structure();
    int  getresponse();
int  check();
    int  initmouse();
void showmouseptr();
    void restrictmouseptr(int,int,int,int);
    void getmousepos();
void hidemouseptr();
    void freehand();
void rect();
    void circ();
void lin();
    void mypoly();
void paint();
    void eraser();
void changemouseptr(int *);
    void printmousepos();
void New();
    void Open();
    int  restore(int,int,int,int,char*);
    void Save();
    void About();
    void bressline ( int, int, int, int );
    void bressline1( int, int, int, int);
    void drawline ( int , int , int , int , int , int );
    void drawline1 ( int , int , int, int , int, int );
    void Ellipse(int ,int ,int ,int );
    void Ellipse1(int ,int ,int ,int );
    void save(int,int ,int,int,char*);
    void clearline();
void main()
    {
        int pch=1;
    
        clrscr();
        initialize();
        structure();
            showmouseptr();

while(1)
    {


   setcolor(fg);
       rectangle(35,40,600,450);
    
        ch=getresponse();
        if(ch==0||ch==35)
            ch=pch;

        switch(ch)
            {
        case 1:
                      rect();
                  break;
            case 2:
                      freehand();
                  break;
            case 3:
                      circ();
                  break;
            case 4:
                      eraser();
                  break;
            case 5:
                      lin();
                  break;
            case 6:
                      paint();
                  break;
            case 7:
                      mypoly();
                  break;
            case 30:
                      if(ch!=pch)
                      New();
                  break;
            case 31:
                      if(ch!=pch)
                      Open();
                  break;
            case 32:
                      if(ch!=pch)
                      Save();
                  break;
            case 33:
                      if(ch!=pch)
                      About();
                  break;
            case 34:
                      if(ch!=pch)
                      closegraph();
                  remove("c:/temp.tmp");
                      exit(0);
        default:
                      if(button==1)
                      {
                  fg=ch-10;
                      setfillstyle(SOLID_FILL,fg);
                      setcolor(15);
                      bar(2,445,17,465);
                      rectangle(2,445,17,465);
                      setcolor(fg);
                  rectangle(35,40,600,450);
                      }
                  else if(button==2)
                      {
                  bg=ch-10;
                      setcolor(15);
                      setfillstyle(SOLID_FILL,bg);
                      bar(10,455,25,475);
                      rectangle(10,455,25,475);
                      setfillstyle(SOLID_FILL,fg);
                      bar(2,445,17,465);
                      rectangle(2,445,17,465);
                      setcolor(fg);
                  }
                      else
                  setcolor(4);
                      outtextxy(35,457,COLOUR);
                      setcolor(fg);
                  break;
    


        }
        if(ch>30&&ch<=33||ch>=10&&ch<=25)
            pch=pch;
        else
            pch=ch;
}
    }
void initialize()
    {
        initgraph(&gd,&gm,"e:\\turbo\\bgi");
    
        if(initmouse()==0)
            {
        closegraph();
        printf("\nMouse Driver is not present");
            getch();
        exit(0);
            }
}

initmouse()
    {
        i.x.ax=0;
            int86(0x33,&i,&o);
            return(o.x.ax);
    }
void showmouseptr()
    {
        i.x.ax=1;
            int86(0x33,&i,&o);
    }
void restrictmouseptr(int x1,int y1,int x2,int y2)
    {
        i.x.ax=7;
            i.x.cx=x1;
            i.x.dx=x2;
            int86(0x33,&i,&o);
            i.x.ax=8;
            i.x.cx=y1;
            i.x.dx=y2;
            int86(0x33,&i,&o);
    }
void getmousepos()
    {
        i.x.ax=3;
            int86(0x33,&i,&o);
            button=o.x.bx;
            x=o.x.cx;
            y=o.x.dx;
    }
void hidemouseptr()
    {
        i.x.ax=2;
            int86(0x33,&i,&o);
    }
void printmousepos()
    {
        int x1,y1,x2,y2,i,j,col;
    
        col=getcolor();
        setcolor(11);
            x1=515+textwidth("x:");
            y1=455+1;
            x2=x1+textwidth(str);
            y2=y1+textheight(str);
    
        for(i=x1;i<=x2;i++)
                    for(j=y1;j<=y2;j++)
                            putpixel(i,j,7);
    
        outtextxy(515,455,"x:    y:    ");
            sprintf(str,"%3d   %3d",x-35,y-40);
            outtextxy(x1,y1,str);
    
        setcolor(col);
}
    void changemouseptr ( int *shape )
    {
        i.x.ax = 9 ;  /* service number */
            i.x.bx = 0 ;  /* actual cursor position from left */
            i.x.cx = 0 ;  /* actual cursor position from top */
            i.x.dx = ( unsigned ) shape ;  /* offset address of pointer image */
            segread ( &s ) ;
            s.es = s.ds ;  /* segment address of pointer */
            int86x ( 0x33, &i, &i, &s ) ;
    }
int check()
    {

        int row1,row2,i,flag=0,col1,col2;
    
        for(row1=100,i=1;i<=7;i++,row1=row1+45)
            {
        row2=row1+20;
    
                if(x>7&&x<27&&y>row1&&y<row2)
                    {
                flag=1;
                    goto down;
                }
    
        }

        for(row1=50,i=10;i<=25;i++,row1=row1+25)
            {
        row2=row1+20;
    
                if(x>610&&x<630&&y>row1&&y<row2)
                    {
                flag=1;
                    goto down;
                }
    
        }

        for(i=30;i<=34;i++)
            {
        if(i==30)
            { col2=260;col1=220;  }
            else if(i==31)
            {
          col1=270;col2=310;
            }
        else if(i==32)
            {
          col1=320;col2=360;
            }
        else if(i==33)
            {
          col1=370;col2=420;     }
            else
        {  col1=427;col2=465; }
    

                if(x>col1&&x<col2&&y>20&&y<35)
                    {
                if(button==1)
                    {
                  flag=1;
                      break;   }
    
                }

        }


down:
            if(flag==1)
            return i;
        else
            return 0;
    }
int getresponse()
    {
        int col,X;
            static int bn;
            static int pbn;
            static int flag;
    
        col=getcolor();
        getmousepos();
            bn=check();

        if(bn>=0&&bn<=7||bn>=10)
            {
                if(pbn!=bn)
                    {
                switch(pbn)
                    {

                case 1:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,100,27,120);
                              showmouseptr();
                          break;
                    case 2:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,145,27,165);
                              showmouseptr();
                          break;
                    case 3:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,190,27,210);
                              showmouseptr();
                          break;
                    case 4:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,235,27,255);
                              showmouseptr();
                          break;
                    case 5:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,280,27,300);
                              showmouseptr();
                          break;
                    case 6:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,325,27,345);
                              showmouseptr();
                          break;
                    case 7:
                              setcolor(15);
                              hidemouseptr();
                          rectangle(7,370,27,390);
                              showmouseptr();
                          break;
                    case 0:
                              clearline();


            }
                }

                switch(bn)
                    {
                case 1:
                              if(pbn!=bn)
                              {
                                setcolor(RED);
                                    hidemouseptr();
                                rectangle(7,100,27,120);
                                    showmouseptr();
                                flag=0;
                                    outtextxy(35,457,RECTANGLE);
                              }
                          else if(button==1)
                              {
                                setcolor(13);
                                    hidemouseptr();
                                rectangle(7,100,27,120);
                                    showmouseptr();
                                flag=1;
                              }
                          break;
                    case 2:
                              if(pbn!=bn)
                              {
                                setcolor(RED);
                                    hidemouseptr();
                                rectangle(7,145,27,165);
                                    showmouseptr();
                                flag=0;
                                    outtextxy(35,457,PENCIL);
    
                          }
                          else if(button==1)
                              {
                                  setcolor(13);
                                      hidemouseptr();
                                  rectangle(7,145,27,165);
                                      showmouseptr();
                                  flag=1;
    
                          }
                          break;
                    case 3:
                              if(pbn!=bn)
                              {
                                setcolor(RED);
                                    hidemouseptr();
                                rectangle(7,190,27,210);
                                    showmouseptr();
                                flag=0;
                                    outtextxy(35,457,ELLIPSE);
    
                          }
                          else if(button==1)
                              {
                                setcolor(13);
                                    hidemouseptr();
                                rectangle(7,190,27,210);
                                    showmouseptr();
                                flag=1;
                              }
                          break;
                    case 4:
                              if(pbn!=bn)
                              {
                                setcolor(RED);
                                    hidemouseptr();
                                rectangle(7,235,27,255);
                                    showmouseptr();
                                flag=0;
                                    outtextxy(35,457,ERASER);
    
                          }
                          else if(button==1)
                              {
                                  setcolor(13);
                                      hidemouseptr();
                                  rectangle(7,235,27,255);
                                      showmouseptr();
                                  flag=1;
                              }
                          break;
                    case 5:
                              if(pbn!=bn)
                              {
                                setcolor(RED);
                                    hidemouseptr();
                                rectangle(7,280,27,300);
                                    showmouseptr();
                                flag=0;
                                    outtextxy(35,457,LINE);
    
                          }
                          else if(button==1)
                              {
                                  setcolor(13);
                                      hidemouseptr();
                                  rectangle(7,280,27,300);
                                      showmouseptr();
                                  flag=1;
                              }
                          break;
                    case 6:
                              if(pbn!=bn)
                              {
                          setcolor(RED);
                              hidemouseptr();
                          rectangle(7,325,27,345);
                              showmouseptr();
                          flag=0;
                              outtextxy(35,457,PAINT);
    
                          }
                          else if(button==1)
                              {
                                  setcolor(13);
                                      hidemouseptr();
                                  rectangle(7,325,27,345);
                                      showmouseptr();
                                  flag=1;
                              }
                          break;
                    case 7:
                              if(pbn!=bn)
                              {
                                setcolor(RED);
                                    hidemouseptr();
                                rectangle(7,370,27,390);
                                    showmouseptr();
                                flag=0;
                                    outtextxy(35,457,POLYLINE);
    
                          }
                          else if(button==1)
                              {
                                  setcolor(13);
                                      hidemouseptr();
                                  rectangle(7,370,27,390);
                                      showmouseptr();
                                  flag=1;
                              }

                          break;
                    case 30:
                              if(button==1)
                              {
                                  flag=1;
                              }
                          else if(pbn!=bn)
                              {
                          clearline();
                              setcolor(4);
                              outtextxy(35,457,NEW);
                              flag=0;
                              }
                          break;
    
                case 31:
                              if(button==1)
                              {
                                  flag=1;
                              }
                          else if(pbn!=bn)
                              {
                          clearline();
                              setcolor(4);
                              outtextxy(35,457,OPEN);
                              flag=0;
                              }

                          break;
                    case 32:
                              if(button==1)
                              {
                                  flag=1;
                              }
                          else if(pbn!=bn)
                              {
                          clearline();
                              setcolor(4);
                              outtextxy(35,457,SAVE);
                              flag=0;
                              }

                          break;
    
                case 33:
                              if(button==1)
                              {
                                  flag=1;
                              }
                          else if(pbn!=bn)
                              {
                          clearline();
                              setcolor(4);
                              outtextxy(35,457,ABOUT);
                              flag=0;
                              }

                          break;
    
                case 34:
                              if(button==1)
                              {
                                  flag=1;
                              }
                          else if(pbn!=bn)
                              {
                          clearline();
                              setcolor(4);
                              outtextxy(35,457,EXIT);
                              flag=0;
                              }

                          break;
                    case 0:
                              clearline();
                default:
                             flag=1;
    

                }



        }

           setcolor(col);
               pbn=bn;
           if(flag==1)
               {
           flag=0;
               return (bn);
               }
           else
           return (0);
    }
void freehand()
    {
        int px=1,py=1,flag=0,but;
    
        while(1)
            {
        getmousepos();
        if(x>=35&&x<=600&&y>=40&&y<=450)
            {
        changemouseptr(pencil);
                     if(px!=x||py!=y)
                     printmousepos();

                  if(button==1)
                      {
                        if(flag==0)
                            {
                                hidemouseptr();
                                    flag=1;
                            }
                        else
                                line(px,py,x,y);
                       }
                   else if(flag!=0)
                       {

                        showmouseptr();
                            flag=0;
    
                   }
                   px=x;
                       py=y;
                }
                    else
                {
                        changemouseptr(hand);
                            showmouseptr();
                        break;
                    }

        }
}
    void rect()
{
            int ix,iy,fx,fy,px=1,py=1,but,flag=0,tx,ty,t=0;
    

          while(1)
              {
          getmousepos();
                if(x>=35&&x<=600&&y>=40&&y<=450)
                    {
                  if(button==1 && t==0)
                      {
                    tx=x;ty=y;
                        t=1;
                  }
                    changemouseptr(plus);
                         if(px!=x||py!=y)
                             printmousepos();


                         if(button==1&&flag==0)
                             {
                         ix=x;iy=y;
    
                         flag=1;
                             }
                         else if(button==1 && flag==1 )
                             {
                         fx=x;fy=y;
                             hidemouseptr();
                         setcolor(fg);
                             rectangle(tx,ty,fx,fy);
                             setcolor(bg);
                         rectangle(tx,ty,fx,fy);
                             showmouseptr();
                         flag=0;
                             }
                         if(button!=1)
                             {
                           setcolor(fg);
                               rectangle(tx,ty,fx,fy);
                               t=0;
                             }

                }

                else
                    {
                  if(t==1)
                      {
                  setcolor(fg);
              rectangle(tx,ty,fx,fy);
                      }
                  t==0;
                      changemouseptr(hand);
                  break;
                    }
                    px=x;
                        py=y;

          }
    }


void circ()
    {
        int ix,iy,but,flag=0,p,q,a,b,p1,q1,a1,b1,px,py;
    
        while(1)
            {
                getmousepos();
                if(x>=35&&x<=600&&y>=40&&y<=450)
                    {
                         changemouseptr(pencil);
                             if(px!=x||py!=y)
                             {
                                printmousepos();
                             }
                         if(button==1)
                             {
                                if(flag==0)
                                    {
                                        hidemouseptr();
                                            ix=x;iy=y;
                                            p1=q1=a1=b1=0;
                                            flag=1;
                                    }
                                else
                                    {
                                        p=(ix+x)/2;
                                            q=(iy+y)/2;
                                            a=abs(ix-p);
                                            b=abs(iy-q);
    
                                        if(p1!=p||q1!=q)
                                            {
                                                Ellipse1(p1,q1,a1,b1);
                                                    Ellipse(p,q,a,b);
                                                    p1=p;q1=q;a1=a;b1=b;
                                            }
                                }
                             }
                         else if(flag!=0)
                             {
                                showmouseptr();
                                    flag=0;
                             }

                         px=x;
                             py=y;
                }
                    else
                {
                         changemouseptr(hand);
                             showmouseptr();
                                break;
    
                }

        }
}
    void lin()
{
            int ix,iy,px=1,py=1,but,flag=0;
    
        while(1)
            {
                getmousepos();
                if(x>=35&&x<=600&&y>=40&&y<=450)
                    {
                         changemouseptr(pencil);
                             if(px!=x||py!=y)
                             {
                                printmousepos();
                             }
                         if(button==1)
                             {
                                if(flag==0)
                                    {
                                        hidemouseptr();
                                            ix=px=x;iy=py=y;
                                            flag=1;
                                    }
                                else
                                    {
                                        if(px!=x||py!=y)
                                            {
                                                bressline1(ix,iy,px,py);
                                                    bressline(ix,iy,x,y);
                                            }
                                }
                             }
                         else if(flag!=0)
                             {
                                showmouseptr();
                                    flag=0;
                             }

                         px=x;
                             py=y;
                }
                    else
                {
                    changemouseptr(hand);
                        break;
                }
    
        }

}
void mypoly()
    {
        int ix,iy,fx,fy,px=1,py=1,but,flag=0;
    
          while(1)
              {
          getmousepos();
                if(x>=35&&x<=600&&y>=40&&y<=450)
                    {
                changemouseptr(pencil);
                             if(px!=x||py!=y)
                             printmousepos();


                      /*         if(button==1&&flag==0)
                             {
                         ix=x;iy=y;
                         flag=1;
                         }*/
                         if(button==1)
                             {
                         hidemouseptr();
                            // line(ix,iy,x,y);
                         lin();
                             showmouseptr();
                         ix=x;
                             iy=y;
                         }
    

                }
                else
                {
                     changemouseptr(hand);
                 break;
                    }
                    px=x;
                        py=y;
          }
    }
void paint()
    {
        int px=1,py=1,but;
            setfillstyle(SOLID_FILL,bg);
    
          while(1)
              {
          getmousepos();

                if(x>=35&&x<=600&&y>=40&&y<=450)
                    {
                changemouseptr(bottle);
    
                      if(px!=x||py!=y)
                             printmousepos();

                         if(button==1)
                             {
                         hidemouseptr();
                             floodfill(x,y,fg);
                             showmouseptr();
                         }
                    }
                else
                {
                     changemouseptr(hand);
                 break;
                    }
                    px=x;
                        py=y;
          }
    

}
void eraser()
    {

  int but,px,py,i,j;
    
          while(1)
              {
            getmousepos();
                if(x>=36&&x<=583&&y>=41&&y<=433)
                    {
                changemouseptr(rubber);
                             if(px!=x||py!=y)
                             printmousepos();

                         if(button==1)
                             {
                         hidemouseptr();
                             for(i=y;i<=y+16;i++)
                                for(j=x;j<=x+16;j++)
                                {
                            putpixel(j,i,bg);
                                }
                         showmouseptr();
                             }
                }
                else
                    {
                changemouseptr(hand);
                    break;
                }
                        px=x;
                    py=y;
              }
}


void structure()
    {
        int i,j,row;
            setfillstyle(SOLID_FILL,8);
            setcolor(15);
        bar(0,0,640,480);                    // screen back ground
            settextstyle(SMALL_FONT,HORIZ_DIR,4);
    
        for(i=0,row=50;i<=15;i++,row+=25)
            {

        setfillstyle(SOLID_FILL,i);            // color tool bars
            bar(610,row,630,row+20);
            rectangle(610,row,630,row+20);
    
        }

        setfillstyle(SOLID_FILL,8);           // draw tool bars
            setcolor(15);
        for(i=0,row=100;i<=6;i++,row+=45)
            {
        bar(7,row,27,row+20);
            rectangle(7,row,27,row+20);
            }

        setcolor(11);
            rectangle(9,104,25,116);           // rectangle tool bar
    
        line(9,147,15,147);                // pencil tool
            line(9,148,14,148);
            line(9,149,13,149);
            line(9,150,12,150);
            line(9,151,11,151);
            line(9,152,10,152);
            line(9,147,9,153);
            line(15,147,24,156);
            line(9,153,18,162);
            line(24,156,18,162);
            line(15,147,9,153);
            line(12,150,21,159);
    
        circle(17,200,8);                   // circle tool
    
        setcolor(11);                       // eraser tool
            setfillstyle(SOLID_FILL,11);
            bar3d(9,246,17,252,8,1);
    
        setcolor(11);
        line(10,283,24,297);               // line tool
    
        rectangle( 9,333,25,343);          // fill area tool
            arc(17,333,0,180,7);
    
        line(12,388,22,388);               // polygon tool
            line(12,388,9,380);
            line(22,388,25,380);
            line(17,372,25,380);
            line(17,372,9,380);
    
        fg=15;                             // assign colors
            bg=0;
        setfillstyle(SOLID_FILL,bg);       // bottom corner symbol
            bar(10,455,25,475);
            setcolor(15);
        rectangle(10,455,25,475);
            setfillstyle(SOLID_FILL,fg);
            bar(2,445,17,465);
            rectangle(2,445,17,465);
            setcolor(fg);
        rectangle(35,40,600,450);
            setfillstyle(SOLID_FILL,bg);
            floodfill(320,240,fg);
    
       //       outtextxy(230,20,"NEW    OPEN   SAVE   ABOUT  EXIT");
        setcolor(0);
            bar(220,20,260,35);
            bar(270,20,310,35);
            bar(320,20,360,35);
            bar(370,20,420,35);
            bar(427,20,465,35);
            setcolor(15);
        rectangle(220,20,260,35);
            rectangle(270,20,310,35);
            rectangle(320,20,360,35);
            rectangle(370,20,420,35);
            rectangle(427,20,465,35);
            outtextxy(230,20,"NEW     OPEN    SAVE     ABOUT    EXIT");
    }
void bressline ( int x1, int y1, int x2, int y2 )
    {
        int incdec, t, i ;
    
        if ( x1 > x2 )
            {
                t = x1 ; x1 = x2 ; x2 = t ;
                    t = y1 ; y1 = y2 ; y2 = t ;
            }

        dx = x2 - x1 ; dy = y2 - y1 ;
    
        if ( dx == 0 ) /* vertical line */
            {
                if ( y1 > y2 )
                    {
                        t = y1 ; y1 = y2 ; y2 = t ;
                    }

                for ( i = y1,j=0 ; i <= y2 ; i++,j++ )
                    {
                        buffer[j]=getpixel (x1,i);
                            putpixel ( x1, i,fg) ;
                    }
                return ;
            }

        if ( dy == 0 )  /* horizontal line */
            {
                for ( i = x1,j=0 ; i < x2 ; i++ ,j++)
                    {
                        buffer[j]=getpixel (i,y1);
                            putpixel ( i, y1, fg ) ;
                    }
                return ;
            }
    /* 0 < m < 1 */
        if ( dy < dx && dy > 0 )
            {
                e_noinc = 2 * dy ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline ( x1, y1, x2, y2, PREDX, INCR ) ;
            }
        /* m = 1 */
        if ( dy == dx && dy > 0 )
            {
                e_noinc = 2 * dy ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline ( x1, y1, x2, y2, PREDX, INCR ) ;
            }
        /* 1 < m < infinity */
        if ( dy > dx && dy > 0 )
            {
                e_noinc = 2 * dx ;
                    e = 2 * dx - dy ;
                    e_inc = 2 * ( dx - dy ) ;
                    drawline ( x1, y1, x2, y2, PREDY, INCR ) ;
            }
        /* 0 > m > -1 */
        if ( -dy < dx && dy < 0 )
            {
                dy = -dy ;
                    e_noinc = 2 * dy ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline ( x1, y1, x2, y2, PREDX, DECR ) ;
            }
        /* m = -1 */
        if ( dy == -dx && dy < 0 )
            {
                dy = -dy ;
                    e_noinc = ( 2 * dy ) ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline ( x1, y1, x2, y2, PREDX, DECR ) ;
            }
        /* -1 > m > 0 */
        if ( -dy > dx && dy < 0 )
            {
                dx = -dx ;
                    e_noinc = - ( 2*dx ) ; e = 2 * dx - dy ;
                    e_inc = - 2 * ( dx - dy ) ;
                    drawline ( x2, y2, x1, y1, PREDY, DECR ) ;
            }
}
void bressline1( int x1, int y1, int x2, int y2 )
    {
        int incdec, t, i ;
    
        if ( x1 > x2 )
            {
                t = x1 ; x1 = x2 ; x2 = t ;
                    t = y1 ; y1 = y2 ; y2 = t ;
            }

        dx = x2 - x1 ; dy = y2 - y1 ;
    
        if ( dx == 0 ) /* vertical line */
            {
                if ( y1 > y2 )
                    {
                        t = y1 ; y1 = y2 ; y2 = t ;
                    }

                for ( i = y1,j=0 ; i <= y2 ; i++,j++ )
                    {
                        putpixel ( x1, i, buffer[j] ) ;
                    }
                return ;
            }

        if ( dy == 0 )  /* horizontal line */
            {
                for ( i = x1,j=0 ; i < x2 ; i++ ,j++)
                    {
                        putpixel ( i, y1,buffer[j] ) ;
                    }
                return ;
            }
    /* 0 < m < 1 */
        if ( dy < dx && dy > 0 )
            {
                e_noinc = 2 * dy ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline1( x1, y1, x2, y2, PREDX, INCR ) ;
            }
        /* m = 1 */
        if ( dy == dx && dy > 0 )
            {
                e_noinc = 2 * dy ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline1( x1, y1, x2, y2, PREDX, INCR ) ;
            }
        /* 1 < m < infinity */
        if ( dy > dx && dy > 0 )
            {
                e_noinc = 2 * dx ;
                    e = 2 * dx - dy ;
                    e_inc = 2 * ( dx - dy ) ;
                    drawline1 ( x1, y1, x2, y2, PREDY, INCR ) ;
            }
        /* 0 > m > -1 */
        if ( -dy < dx && dy < 0 )
            {
                dy = -dy ;
                    e_noinc = 2 * dy ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline1 ( x1, y1, x2, y2, PREDX, DECR ) ;
            }
        /* m = -1 */
        if ( dy == -dx && dy < 0 )
            {
                dy = -dy ;
                    e_noinc = ( 2 * dy ) ;
                    e = 2 * dy - dx ;
                    e_inc = 2 * ( dy - dx ) ;
                    drawline1( x1, y1, x2, y2, PREDX, DECR ) ;
            }
        /* -1 > m > 0 */
        if ( -dy > dx && dy < 0 )
            {
                dx = -dx ;
                    e_noinc = - ( 2*dx ) ; e = 2 * dx - dy ;
                    e_inc = - 2 * ( dx - dy ) ;
                    drawline1( x2, y2, x1, y1, PREDY, DECR ) ;
            }
}


void drawline ( int x1, int y1, int x2, int y2, int pred, int incdec )
    {
        int i, start, end, var ;
            if ( pred == PREDX )
                   {        start = x1 ;  end = x2 ;  var = y1 ;}
            else
         {      start = y1 ;  end = y2 ;  var = x1 ;}
    

        for ( i = start,j=0 ; i <= end ; i++,j++ )
            {
                if ( pred == PREDY )
                    {
                        buffer[j]=getpixel (var,i);
                            putpixel ( var, i, fg ) ;
                    }
                else
                {
                            buffer[j]=getpixel (i,var);
                            putpixel ( i, var, fg ) ;
                    }

                if ( e < 0 )
                            e += e_noinc ;
                else
                    {
                        var += incdec ;
                            e += e_inc ;
                }
            }
}
void drawline1 ( int x1, int y1, int x2, int y2, int pred, int incdec )
    {
        int i, start, end, var ;
            if ( pred == PREDX )
            {
                start = x1 ;  end = x2 ;  var = y1 ;
            }
        else
        {
                    start = y1 ;  end = y2 ;  var = x1 ;
            }

        for ( i = start,j=0 ; i <= end ; i++,j++ )
            {
                if ( pred == PREDY )
                    {
                        putpixel ( var, i,buffer[j]) ;
                    }
                else
                {
                            putpixel ( i, var, buffer[j] ) ;
                    }

                if ( e < 0 )
                            e += e_noinc ;
                else
                    {
                        var += incdec ;
                            e += e_inc ;
                }
            }
}
void Ellipse(int xc,int yc,int a0,int b0)
    {
        int x = 0;
            int y = b0;
    
        long a= a0;
            long b = b0;
    

        long Asquared = a*a;
            long TwoAsquared = 2 * Asquared;
            long Bsquared = b*b;
            long TwoBsquared = 2 * Bsquared;
    
        long d;
        long dx,dy;
    
        d = Bsquared - Asquared*b + Asquared/4;
            dx = 0;
            dy = TwoAsquared *b;
    
        j=0;

        while (dx < dy)
            {

        buffer[j]=getpixel(xc + x, yc + y);j++;
            buffer[j]=getpixel(xc - x, yc + y);j++;
            buffer[j]=getpixel(xc + x, yc - y);j++;
            buffer[j]=getpixel(xc - x, yc - y);j++;
    
        putpixel(xc + x, yc + y, fg);
            putpixel(xc - x, yc + y, fg);
            putpixel(xc + x, yc - y, fg);
            putpixel(xc - x, yc - y, fg);
    
                if (d > 0)
                    {
                        --y;
                            dy -= TwoAsquared;
                            d-=dy;
                }
    
                ++x;
                dx+=TwoBsquared;
                    d += Bsquared + dx;
            }

        d += (3 *(Asquared-Bsquared)/2 -(dx+dy)) / 2;
    
        while (y >=0)
            {
        buffer[j]=getpixel(xc + x, yc + y);j++;
            buffer[j]=getpixel(xc - x, yc + y);j++;
            buffer[j]=getpixel(xc + x, yc - y);j++;
            buffer[j]=getpixel(xc - x, yc - y);j++;
    
        putpixel(xc + x, yc + y, fg);
            putpixel(xc - x, yc + y, fg);
            putpixel(xc + x, yc - y, fg);
            putpixel(xc - x, yc - y, fg);
    
                if (d < 0) {
                            ++x;
                        dx+= TwoBsquared;
                            d+= dx;
                }
    
                --y;
                dy -= TwoAsquared;
                    d+= Asquared - dy;
            }
}
void Ellipse1(int xc,int yc,int a0,int b0)
    {
        int x = 0;
            int y = b0;
    
        long a= a0;
            long b = b0;
    

        long Asquared = a*a;
            long TwoAsquared = 2 * Asquared;
            long Bsquared = b*b;
            long TwoBsquared = 2 * Bsquared;
    
        long d;
        long dx,dy;
    
        d = Bsquared - Asquared*b + Asquared/4;
            dx = 0;
            dy = TwoAsquared *b;
    
        j=0;

        while (dx < dy)
            {
        putpixel(xc + x, yc + y,buffer[j]);j++;
            putpixel(xc - x, yc + y,buffer[j]);j++;
            putpixel(xc + x, yc - y,buffer[j]);j++;
            putpixel(xc - x, yc - y,buffer[j]);j++;
    
                if (d > 0)
                    {
                        --y;
                            dy -= TwoAsquared;
                            d-=dy;
                }
    
                ++x;
                dx+=TwoBsquared;
                    d += Bsquared + dx;
            }

        d += (3 *(Asquared-Bsquared)/2 -(dx+dy)) / 2;
    
        while (y >=0)
            {
        putpixel(xc + x, yc + y,buffer[j]);j++;
            putpixel(xc - x, yc + y,buffer[j]);j++;
            putpixel(xc + x, yc - y,buffer[j]);j++;
            putpixel(xc - x, yc - y,buffer[j]);j++;
    
                if (d < 0) {
                            ++x;
                        dx+= TwoBsquared;
                            d+= dx;
                }
    
                --y;
                dy -= TwoAsquared;
                    d+= Asquared - dy;
            }
}
void New()
    {
        hidemouseptr();
        structure();
            showmouseptr();
}
void Open()
    {
        int i;
            char st[13];
            setcolor(15);
        hidemouseptr();
            save(220,200,420,280,"c:/temp.tmp");
    
        setfillstyle(SOLID_FILL,15);
            bar(220,200,420,280);
            setfillstyle(SOLID_FILL,8);
            bar(221,201,419,216);
            settextstyle(SMALL_FONT,HORIZ_DIR,5);
    
        outtextxy(222,201," OPEN");
            settextstyle(SMALL_FONT,HORIZ_DIR,4);
            setcolor(8);
        outtextxy(222,230,"     Enter the File Name");
            w=textwidth("a");
            h=textheight("a");
    
        bar(221,263,419,279);
            setcolor(15);
        outtextxy(320-(3*w),265,"< OK >");
            setcolor(8);
        for(i=0;st[i-1]!='\n';i++)
            {
        st[i]=getch();
    
        if(st[i]==13||i>11)
            {
        st[i]='\0';
            break;
        }
            else if(st[i]==27)
            {
        goto Down;
            }

        st[i+1]='\0';
            outtextxy(320-(6*w),245,st);
            }

        if(restore(36,41,599,449,st)==0)
            {
        setfillstyle(SOLID_FILL,15);
            bar(220,200,420,280);
            setfillstyle(SOLID_FILL,8);
            bar(221,201,419,216);
            settextstyle(SMALL_FONT,HORIZ_DIR,5);
            setcolor(15);
        outtextxy(222,201," ERROR!");
            settextstyle(SMALL_FONT,HORIZ_DIR,4);
            setcolor(8);
        outtextxy(265,239,"Incorrect File Name!");
    
        bar(221,263,419,279);
            setcolor(15);
        getch();
            Down:
        restore(220,200,420,280,"c:/temp.tmp");
            }
        remove("c:/temp.tmp");
            showmouseptr();
        setcolor(fg);
    }
void About()
    {

        int i,w,col;
            char st[13];
            setcolor(15);
        hidemouseptr();
            save(200,195,435,285,"c:/temp.tmp");
    
        setcolor(8);
  for(i=0;i<180;i++)
      {
    circle(320,240,i);
        delay(5);
  }
      setcolor(15);
  outtextxy(200,300,"KONERU LAKSHMAIAH COLLEGE OF ENGINEERING");
      outtextxy(250,160,"CREATERS AND DEVELOPERS ");
      outtextxy(290,200,"SREEKANTH");
      outtextxy(290,220,"SANTOSH");
      outtextxy(290,240,"SURESH");
    

        flushall();
        getch();

        setfillstyle(1,16);
           //       restore(100,100,500,400,"c:/temp.tmp");
        bar(50,50,500,430);
            remove("c:/temp.tmp");
            showmouseptr();
        setcolor(fg);
    
}
void Save()
    {
        int i,flag=0;
            char st[13];
            setcolor(15);
        hidemouseptr();
            save(220,200,420,280,"c:/temp.tmp");
    
        setfillstyle(SOLID_FILL,15);
            bar(220,200,420,280);
            setfillstyle(SOLID_FILL,8);
            bar(221,201,419,216);
            settextstyle(SMALL_FONT,HORIZ_DIR,5);
            outtextxy(222,201," SAVE");
            settextstyle(SMALL_FONT,HORIZ_DIR,4);
            setcolor(8);
        outtextxy(222,230,"     Enter the File Name");
            w=textwidth("a");
            h=textheight("a");
            bar(221,263,419,279);
            setcolor(15);
        outtextxy(320-(3*w),265,"< OK >");
            setcolor(8);
        for(i=0;st[i-1]!='\n';i++)
            {
        st[i]=getch();
    
        if(st[i]==13||i>11)
            {
        st[i]='\0';
            flag=1;
        break;
            }
        else if(st[i]==27)
            {
        goto Down;
            }

        st[i+1]='\0';
            outtextxy(320-(6*w),245,st);
            }

        Down:
            restore(220,200,420,280,"c:/temp.tmp");
            if(flag==1)
            {
        save(36,41,599,449,st);
            }

        showmouseptr();
        setcolor(fg);
    }

void save(int x1,int y1,int x2,int y2,char name[13])
    {
 int i,j;
     char ch;
 FILE *fp;
     x=x2;
 y=y2;
     fp=fopen(name,"wb");
     if(fp!=NULL)
     {
 for(i=x1;i<=x2;i++)
      for(j=y1;j<=y2;j++)
      {
    ch=getpixel(i,j);
        fputc(ch,fp);
      }
  fclose(fp);
     }
}

int restore(int x1,int y1,int x2,int y2, char name[13])
    {
 char ch;
     int i,j;
     FILE *fp;
 fp=fopen(name,"rb");
     if(fp!='\0')
     {
 for(i=x1;i<=x2;i++)
      for(j=y1;j<=y2;j++)
      {
    ch=fgetc(fp);
        putpixel(i,j,ch);
      }
    fclose(fp);
        return 1;
     }
  else
  return 0;
    }
void clearline()
    {
        int i,j;
            setcolor(8);
    //  for(i=457;i<=470;i++)
        //    line(35,i,450,i);
      for(i=35;i<=450;i++)
             for(j=457;j<=470;j++)
                    putpixel(i,j,8);
    }


download link ------------  click here



--
Hackerx Sasi
Don't ever give up.
Even when it seems impossible,
Something will always
pull you through.
The hardest times get even
worse when you lose hope.
As long as you believe you can do it, You can.

But When you give up,
You lose !
I DONT GIVE UP.....!!!

with regards
prem sasi kumar arivukalanjiam

No comments:

Post a Comment

Slider

Image Slider By engineerportal.blogspot.in The slide is a linking image  Welcome to Engineer Portal... #htmlcaption

Tamil Short Film Laptaap

Tamil Short Film Laptaap
Laptapp

Labels

About Blogging (1) Advance Data Structure (2) ADVANCED COMPUTER ARCHITECTURE (4) Advanced Database (4) ADVANCED DATABASE TECHNOLOGY (4) ADVANCED JAVA PROGRAMMING (1) ADVANCED OPERATING SYSTEMS (3) ADVANCED OPERATING SYSTEMS LAB (2) Agriculture and Technology (1) Analag and Digital Communication (1) Android (1) Applet (1) ARTIFICIAL INTELLIGENCE (3) aspiration 2020 (3) assignment cse (12) AT (1) AT - key (1) Attacker World (6) Basic Electrical Engineering (1) C (1) C Aptitude (20) C Program (87) C# AND .NET FRAMEWORK (11) C++ (1) Calculator (1) Chemistry (1) Cloud Computing Lab (1) Compiler Design (8) Computer Graphics Lab (31) COMPUTER GRAPHICS LABORATORY (1) COMPUTER GRAPHICS Theory (1) COMPUTER NETWORKS (3) computer organisation and architecture (1) Course Plan (2) Cricket (1) cryptography and network security (3) CS 810 (2) cse syllabus (29) Cyberoam (1) Data Mining Techniques (5) Data structures (3) DATA WAREHOUSING AND DATA MINING (4) DATABASE MANAGEMENT SYSTEMS (8) DBMS Lab (11) Design and Analysis Algorithm CS 41 (1) Design and Management of Computer Networks (2) Development in Transportation (1) Digital Principles and System Design (1) Digital Signal Processing (15) DISCRETE MATHEMATICS (1) dos box (1) Download (1) ebooks (11) electronic circuits and electron devices (1) Embedded Software Development (4) Embedded systems lab (4) Embedded systems theory (1) Engineer Portal (1) ENGINEERING ECONOMICS AND FINANCIAL ACCOUNTING (5) ENGINEERING PHYSICS (1) english lab (7) Entertainment (1) Facebook (2) fact (31) FUNDAMENTALS OF COMPUTING AND PROGRAMMING (3) Gate (3) General (3) gitlab (1) Global warming (1) GRAPH THEORY (1) Grid Computing (11) hacking (4) HIGH SPEED NETWORKS (1) Horizon (1) III year (1) INFORMATION SECURITY (1) Installation (1) INTELLECTUAL PROPERTY RIGHTS (IPR) (1) Internal Test (13) internet programming lab (20) IPL (1) Java (38) java lab (1) Java Programs (28) jdbc (1) jsp (1) KNOWLEDGE MANAGEMENT (1) lab syllabus (4) MATHEMATICS (3) Mechanical Engineering (1) Microprocessor and Microcontroller (1) Microprocessor and Microcontroller lab (11) migration (1) Mini Projects (1) MOBILE AND PERVASIVE COMPUTING (15) MOBILE COMPUTING (1) Multicore Architecute (1) MULTICORE PROGRAMMING (2) Multiprocessor Programming (2) NANOTECHNOLOGY (1) NATURAL LANGUAGE PROCESSING (1) NETWORK PROGRAMMING AND MANAGEMENT (1) NETWORKPROGNMGMNT (1) networks lab (16) News (14) Nova (1) NUMERICAL METHODS (2) Object Oriented Programming (1) ooad lab (6) ooad theory (9) OPEN SOURCE LAB (22) openGL (10) Openstack (1) Operating System CS45 (2) operating systems lab (20) other (4) parallel computing (1) parallel processing (1) PARALLEL PROGRAMMING (1) Parallel Programming Paradigms (4) Perl (1) Placement (3) Placement - Interview Questions (64) PRINCIPLES OF COMMUNICATION (1) PROBABILITY AND QUEUING THEORY (3) PROGRAMMING PARADIGMS (1) Python (3) Question Bank (1) question of the day (8) Question Paper (13) Question Paper and Answer Key (3) Railway Airport and Harbor (1) REAL TIME SYSTEMS (1) RESOURCE MANAGEMENT TECHNIQUES (1) results (3) semester 4 (5) semester 5 (1) Semester 6 (5) SERVICE ORIENTED ARCHITECTURE (1) Skill Test (1) software (1) Software Engineering (4) SOFTWARE TESTING (1) Structural Analysis (1) syllabus (34) SYSTEM SOFTWARE (1) system software lab (2) SYSTEMS MODELING AND SIMULATION (1) Tansat (2) Tansat 2011 (1) Tansat 2013 (1) TCP/IP DESIGN AND IMPLEMENTATION (1) TECHNICAL ENGLISH (7) Technology and National Security (1) Theory of Computation (3) Thought for the Day (1) Timetable (4) tips (4) Topic Notes (7) tot (1) TOTAL QUALITY MANAGEMENT (4) tutorial (8) Ubuntu LTS 12.04 (1) Unit Wise Notes (1) University Question Paper (1) UNIX INTERNALS (1) UNIX Lab (21) USER INTERFACE DESIGN (3) VIDEO TUTORIALS (1) Virtual Instrumentation Lab (1) Visual Programming (2) Web Technology (11) WIRELESS NETWORKS (1)

LinkWithin